MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Base URL

http://localhost:8000

Authenticating requests

This API is not authenticated.

1. Authentication

APIs for Authentication

Register

Example request:
curl --request POST \
    "http://localhost:8000/api/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"email\": \"john.doe@currikistudio.org\",
    \"password\": \"Password123\",
    \"organization_name\": \"Curriki\",
    \"organization_type\": \"Nonprofit\",
    \"job_title\": \"Developer\",
    \"domain\": \"currikistudio\"
}"
const url = new URL(
    "http://localhost:8000/api/register"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@currikistudio.org",
    "password": "Password123",
    "organization_name": "Curriki",
    "organization_type": "Nonprofit",
    "job_title": "Developer",
    "domain": "currikistudio"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/register',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'email' => 'john.doe@currikistudio.org',
            'password' => 'Password123',
            'organization_name' => 'Curriki',
            'organization_type' => 'Nonprofit',
            'job_title' => 'Developer',
            'domain' => 'currikistudio',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "message": "You are one step away from building the world's most immersive learning experiences with CurrikiStudio!"
}
 

Example response (500):


{
    "errors": [
        "Could not create user account. Please try again later."
    ]
}
 

Request      

POST api/register

Body Parameters

first_name  string  

First name of a user

last_name  string  

Last name of a user

email  string  

Email of a user

password  string  

Password

organization_name  string  

Organization name of a user

organization_type  string  

Organization type of a user

job_title  string  

Job title of a user

domain  string  

Organization domain user is registering for

Login

Example request:
curl --request POST \
    "http://localhost:8000/api/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john.doe@currikistudio.org\",
    \"password\": \"Password123\",
    \"domain\": \"curriki\"
}"
const url = new URL(
    "http://localhost:8000/api/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john.doe@currikistudio.org",
    "password": "Password123",
    "domain": "curriki"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'john.doe@currikistudio.org',
            'password' => 'Password123',
            'domain' => 'curriki',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid Credentials."
    ]
}
 

Example response (400):


{
    "errors": [
        "Invalid Domain."
    ]
}
 

Example response (400):


{
    "errors": [
        "Email is not verified."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

POST api/login

Body Parameters

email  string  

The email of a user

password  string  

The password corresponded to the email

domain  string  

Organization domain to get data for

Admin Login

Example request:
curl --request POST \
    "http://localhost:8000/api/admin/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john.doe@currikistudio.org\",
    \"password\": \"Password123\",
    \"domain\": \"ducimus\"
}"
const url = new URL(
    "http://localhost:8000/api/admin/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john.doe@currikistudio.org",
    "password": "Password123",
    "domain": "ducimus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/admin/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'john.doe@currikistudio.org',
            'password' => 'Password123',
            'domain' => 'ducimus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid Credentials."
    ]
}
 

Example response (500):


{
    "errors": [
        "Email is not verified."
    ]
}
 

Example response (500):


{
    "errors": [
        "Unauthorized!"
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

POST api/admin/login

Body Parameters

email  string  

The email of a user

password  string  

The password corresponded to the email

domain  string optional  

Login with Google

Example request:
curl --request POST \
    "http://localhost:8000/api/login/google" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"domain\": \"accusantium\",
    \"tokenId\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjJjNmZh...\",
    \"tokenObj\": {
        \"token_type\": \"Bearer\",
        \"access_token\": \"ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...\",
        \"scope\": \"email profile ...\",
        \"login_hint\": \"AJDLj6JUa8yxXrhHdWRHIV0...\",
        \"expires_in\": 3599,
        \"id_token\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6I...\",
        \"session_state\": {
            \"extraQueryParams\": {
                \"authuser\": \"0\"
            }
        },
        \"first_issued_at\": 1601535932504,
        \"expires_at\": 1601539531504,
        \"idpId\": \"google\"
    }
}"
const url = new URL(
    "http://localhost:8000/api/login/google"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "domain": "accusantium",
    "tokenId": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjJjNmZh...",
    "tokenObj": {
        "token_type": "Bearer",
        "access_token": "ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...",
        "scope": "email profile ...",
        "login_hint": "AJDLj6JUa8yxXrhHdWRHIV0...",
        "expires_in": 3599,
        "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6I...",
        "session_state": {
            "extraQueryParams": {
                "authuser": "0"
            }
        },
        "first_issued_at": 1601535932504,
        "expires_at": 1601539531504,
        "idpId": "google"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/login/google',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'domain' => 'accusantium',
            'tokenId' => 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjJjNmZh...',
            'tokenObj' => [
                'token_type' => 'Bearer',
                'access_token' => 'ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...',
                'scope' => 'email profile ...',
                'login_hint' => 'AJDLj6JUa8yxXrhHdWRHIV0...',
                'expires_in' => 3599,
                'id_token' => 'eyJhbGciOiJSUzI1NiIsImtpZCI6I...',
                'session_state' => [
                    'extraQueryParams' => [
                        'authuser' => '0',
                    ],
                ],
                'first_issued_at' => 1601535932504,
                'expires_at' => 1601539531504,
                'idpId' => 'google',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Unable to login with Google."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

POST api/login/google

Body Parameters

domain  string  

tokenId  string  

The token Id of google login

tokenObj  object  

The token object of google login

tokenObj.token_type  string  

The token type of google login

tokenObj.access_token  string  

The access token of google login

tokenObj.scope  string  

The token scope of google login

tokenObj.login_hint  string  

The token hint of google login

tokenObj.expires_in  integer  

The token expire of google login

tokenObj.id_token  string  

The token Id of google login

tokenObj.session_state  object  

The session state of google login

tokenObj.session_state.extraQueryParams  object  

Extra query params for goole login

tokenObj.session_state.extraQueryParams.authuser  string  

tokenObj.first_issued_at  integer  

The first issued time of google login

tokenObj.expires_at  integer  

The expire time of google login

tokenObj.idpId  string  

The idp Id of google login

Login with LTI SSO 1.0

Example request:
curl --request POST \
    "http://localhost:8000/api/login/sso" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sso_info\": \"dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB...\"
}"
const url = new URL(
    "http://localhost:8000/api/login/sso"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "sso_info": "dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB..."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/login/sso',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sso_info' => 'dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB...',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Unable to login with LTI SSO."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

POST api/login/sso

Body Parameters

sso_info  string  

The base64encode query params

Login with LTI SSO

Example request:
curl --request POST \
    "http://localhost:8000/api/login/lti-sso" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sso_info\": \"dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB...\"
}"
const url = new URL(
    "http://localhost:8000/api/login/lti-sso"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "sso_info": "dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB..."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/login/lti-sso',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sso_info' => 'dXNlcl9rZXk9YWFobWFkJnVzZXJfZW1haWw9YXFlZWwuYWhtYWQlNDB...',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Unable to login with LTI SSO."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

POST api/login/lti-sso

Body Parameters

sso_info  string  

The base64encode query params

Wordpress SSO: Execute wordpress sso authentication

Example request:
curl --request POST \
    "http://localhost:8000/api/login/wordpress-sso" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"clientId\": \"non\",
    \"code\": \"illo\"
}"
const url = new URL(
    "http://localhost:8000/api/login/wordpress-sso"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "clientId": "non",
    "code": "illo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/login/wordpress-sso',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'clientId' => 'non',
            'code' => 'illo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/login/wordpress-sso

Body Parameters

clientId  string  

Client id for the integration: 7PwnyVuYIWJtdKYIzvxBpo5wFAizj12F6WU8qFta

code  string  

Temporary token for sso : 7PwnyVuYIWJtdKYIzvxBpo5wFAizj12F6WU8qFta

Get Wordpress SSO default settings

Wordpress SSO: Get default settings for a particular wordpress sso integration

Example request:
curl --request GET \
    --get "http://localhost:8000/api/login/wordpress-sso-settings/voluptatibus" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/login/wordpress-sso-settings/voluptatibus"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/login/wordpress-sso-settings/voluptatibus',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "errors": [
        "Unable to find default LMS setting with your client id."
    ]
}
 

Request      

GET api/login/wordpress-sso-settings/{clientId}

URL Parameters

clientId  string  

client  integer  

Id for the integration

Oaut Redirect

Example request:
curl --request GET \
    --get "http://localhost:8000/api/oauth/soluta/redirect" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/oauth/soluta/redirect"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/oauth/soluta/redirect',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


- Redirect
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

GET api/oauth/{provider}/redirect

URL Parameters

provider  string  

Oaut oauthCallBack

Example request:
curl --request GET \
    --get "http://localhost:8000/api/oauth/dicta/callback" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/oauth/dicta/callback"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/oauth/dicta/callback',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


- Redirect back
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true
    },
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
 

Request      

GET api/oauth/{provider}/callback

URL Parameters

provider  string  

Forgot Password Send a password reset link to the given user.

Example request:
curl --request POST \
    "http://localhost:8000/api/forgot-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john.doe@currikistudio.org\"
}"
const url = new URL(
    "http://localhost:8000/api/forgot-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john.doe@currikistudio.org"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/forgot-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'john.doe@currikistudio.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Password reset email has been sent. Please follow the instructions."
}
 

Example response (400):


{
    "errors": [
        "Email is not verified."
    ]
}
 

Request      

POST api/forgot-password

Body Parameters

email  string  

The email of a user

Reset Password Reset the given user's password.

Example request:
curl --request POST \
    "http://localhost:8000/api/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...\",
    \"email\": \"john.doe@currikistudio.org\",
    \"password\": \"Password123\",
    \"password_confirmation\": \"Password123\"
}"
const url = new URL(
    "http://localhost:8000/api/reset-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "token": "ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...",
    "email": "john.doe@currikistudio.org",
    "password": "Password123",
    "password_confirmation": "Password123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/reset-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'token' => 'ya29.a0AfH6SMBx-CIZfKRorxn8xPugO...',
            'email' => 'john.doe@currikistudio.org',
            'password' => 'Password123',
            'password_confirmation' => 'Password123',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Password has been reset successfully."
}
 

Example response (401):


{
    "error": "Invalid request."
}
 

Request      

POST api/reset-password

Body Parameters

token  string  

The token for reset password

email  string  

The email of a user

password  string  

The new password

password_confirmation  string  

The confirmation of password

Verify an Email Address Mark the authenticated user's email address as verified.

Example request:
curl --request POST \
    "http://localhost:8000/api/verify-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"hash\": \"9e0f70124a2a88d5435...\",
    \"signature\": \"467fbe9a00e7d367553f...\",
    \"expires\": 1599754915
}"
const url = new URL(
    "http://localhost:8000/api/verify-email"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "hash": "9e0f70124a2a88d5435...",
    "signature": "467fbe9a00e7d367553f...",
    "expires": 1599754915
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/verify-email',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'hash' => '9e0f70124a2a88d5435...',
            'signature' => '467fbe9a00e7d367553f...',
            'expires' => 1599754915,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (204):

[Empty response]
 

Request      

POST api/verify-email

Body Parameters

id  integer  

The Id of a user

hash  string  

The hash string

signature  string  

The signature

expires  integer  

The expire time of verification email

Logout

Example request:
curl --request POST \
    "http://localhost:8000/api/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/logout"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/logout',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "You have been successfully logged out."
}
 

Request      

POST api/logout

Check if email is already registered

Example request:
curl --request GET \
    --get "http://localhost:8000/api/checkemail/fuga" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/checkemail/fuga"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/checkemail/fuga',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "exists": false,
    "message": "Email is not registered"
}
 

Request      

GET api/checkemail/{email}

URL Parameters

email  string optional  

address to be checked: currikiuser@curriki.org

2. User

APIs for user management

Download Exported Project

Download the specific notification project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/users/notifications/tempore/download-export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/users/notifications/tempore/download-export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/users/notifications/tempore/download-export',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Notification has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Not an export notification.",
        "Link has expired.",
        "Notification with provided id does not exists."
    ]
}
 

Request      

GET api/users/notifications/{notification}/download-export

URL Parameters

notification  string  

The notification.

notification_id  string  

Current id of a notification

Get All User Organizations

Get a list of the users organizations

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/organizations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/organizations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/organizations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Curriki Studio",
            "description": "Curriki Studio, default organization.",
            "image": "/storage/organizations/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
            "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
            "domain": "currikistudio"
        }
    ]
}
 

Request      

GET api/v1/users/organizations

Accept Terms

Accept Terms and Privacy Policy.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/subscribe" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/subscribe"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/subscribe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to subscribe."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true,
        "organization_role": "Admin",
        "organization_role_id": 1,
        "organization_joined_at": "2022-10-12",
        "projects_count": 5,
        "groups_count": 1,
        "teams_count": 2
    },
    "message": "User has been created successfully."
}
 

Request      

POST api/v1/subscribe

Get Authenticated User

Get the authenticated user detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/me',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to get user detail."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true,
        "organization_role": "Admin",
        "organization_role_id": 1,
        "organization_joined_at": "2022-10-12",
        "projects_count": 5,
        "groups_count": 1,
        "teams_count": 2
    },
    "message": "User has been created successfully."
}
 

Request      

GET api/v1/users/me

Get All User Notifications

Get a list of the users unread notification

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/notifications" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/notifications"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/notifications',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "notifications": [
        {
            "id": "afff2365-a4f3-48ab-8d53-6d958a9e3ab3",
            "type": "App\\Notifications\\CloneNotification",
            "notifiable_type": "App\\User",
            "notifiable_id": 1243,
            "data": {
                "message": "Project(26 Project 2) has been duplicated successfully"
            },
            "read_at": null,
            "created_at": "2020-10-16T13:46:33.000000Z",
            "updated_at": "2020-10-16T13:46:33.000000Z"
        }
    ]
}
 

Request      

GET api/v1/users/notifications

Get All User Export list

Get a list of the users exported project

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 25,
    \"days_limit\": \"?days_limit=5\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 25,
    "days_limit": "?days_limit=5"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 25,
            'days_limit' => '?days_limit=5',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "681e9e03-6601-4752-a360-5037f0401bba",
            "project": "Metrics Project",
            "created_at": "14-Jun-2022",
            "will_expire_on": "24-Jun-2022",
            "link": "/api/storage/exports/projects-62a877f9af025.zip"
        },
        {
            "id": "21f86165-698f-4c7e-ac8a-7ddace3fca73",
            "project": "Pro Micro",
            "created_at": "09-Jun-2022",
            "will_expire_on": "19-Jun-2022",
            "link": "/api/storage/exports/projects-62a1f02f43a7b.zip"
        }
    ],
    "links": {
        "first": "suborganization/1/users/notifications/export-list?size=10&page=1",
        "last": "suborganization/1/users/notifications/export-list?size=10&page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "suborganization/1/users/notifications/export-list",
        "per_page": "10",
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/users/notifications/export-list

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

Id of an organization.

Body Parameters

size  integer optional  

Limit for getting the paginated records, Default 25.

days_limit  Days optional  

limit for getting the exported project records, Default 10.

Get All User Export list

Get a list of the users exported project

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list-independent-activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 25,
    \"days_limit\": \"?days_limit=5\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list-independent-activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 25,
    "days_limit": "?days_limit=5"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/users/notifications/export-list-independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 25,
            'days_limit' => '?days_limit=5',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "e66ce14f-e8c0-4fcd-8e9c-0a53453c6da0",
            "project": "Test new Drag 1.14",
            "created_at": "17-Jun-2022",
            "will_expire_on": "27-Jun-2022",
            "link": "storage/exports/independent_activity-62ac5c287b011.zip",
            "organization_id": 1
        },
        {
            "id": "e1ef3916-645e-40ed-81b3-0143d9fc19f6",
            "project": "Taurus 10 Jun 2022 edited-COPY edited",
            "created_at": "17-Jun-2022",
            "will_expire_on": "27-Jun-2022",
            "link": "storage/exports/independent_activity-62ac5c2566576.zip",
            "organization_id": 1
        }
    ],
    "links": {
        "first": "suborganization/1/users/notifications/export-list-independent-activities?size=10&page=1",
        "last": "suborganization/1/users/notifications/export-list-independent-activities?size=10&page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "suborganization/1/users/notifications/export-list-independent-activities",
        "per_page": "10",
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/users/notifications/export-list-independent-activities

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

Id of an organization.

Body Parameters

size  integer optional  

Limit for getting the paginated records, Default 25.

days_limit  Days optional  

limit for getting the exported project records, Default 10.

Read All Notifications

Read all notifications of the specified user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/notifications/read-all" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/notifications/read-all"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/notifications/read-all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to read notifications."
    ]
}
 

Example response (200):


{
    "notifications": [
        {
            "id": "afff2365-a4f3-48ab-8d53-6d958a9e3ab3",
            "type": "App\\Notifications\\CloneNotification",
            "notifiable_type": "App\\User",
            "notifiable_id": 1243,
            "data": {
                "message": "Project(26 Project 2) has been duplicated successfully"
            },
            "read_at": null,
            "created_at": "2020-10-16T13:46:33.000000Z",
            "updated_at": "2020-10-16T13:46:33.000000Z"
        }
    ]
}
 

Request      

GET api/v1/users/notifications/read-all

Read Notification

Read notification of the specified user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/users/notifications/hic/read" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/notifications/hic/read"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/users/notifications/hic/read',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to read notification."
    ]
}
 

Example response (200):


{
    "notifications": [
        {
            "id": "afff2365-a4f3-48ab-8d53-6d958a9e3ab3",
            "type": "App\\Notifications\\CloneNotification",
            "notifiable_type": "App\\User",
            "notifiable_id": 1243,
            "data": {
                "message": "Project(26 Project 2) has been duplicated successfully"
            },
            "read_at": null,
            "created_at": "2020-10-16T13:46:33.000000Z",
            "updated_at": "2020-10-16T13:46:33.000000Z"
        }
    ]
}
 

Request      

POST api/v1/users/notifications/{notification}/read

URL Parameters

notification  string  

The notification.

notification_id  string  

Current id of a notification

Delete Notification

Remove the specified notification from storage.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/users/notifications/omnis/delete" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/notifications/omnis/delete"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/users/notifications/omnis/delete',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Notification has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete notification."
    ]
}
 

Request      

POST api/v1/users/notifications/{notification}/delete

URL Parameters

notification  string  

The notification.

notification_id  string  

Current id of a notification

Get a list of the users for Team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/users/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"search\": \"Abby\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/users/search"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "search": "Abby"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/users/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'search' => 'Abby',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "users": [
        {
            "id": 1,
            "first_name": "John",
            "last_name": "Doe"
        },
        {
            "id": 2,
            "first_name": "Jane",
            "last_name": "Doe"
        }
    ]
}
 

Get a list of the organization users.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/users/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"search\": \"Abby\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/users/search"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "search": "Abby"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/users/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'search' => 'Abby',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "users": [
        {
            "id": 1,
            "first_name": "John",
            "last_name": "Doe"
        },
        {
            "id": 2,
            "first_name": "Jane",
            "last_name": "Doe"
        }
    ]
}
 

Check Organization User

Check if organization user exist in specific organization or not.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/users/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": \"1\",
    \"user_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/users/check"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": "1",
    "user_id": "1"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/users/check',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => '1',
            'user_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "invited": true,
    "message": "Success"
}
 

Example response (400):


{
    "invited": false,
    "message": "error"
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/users/check

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

Organization  string optional  

$suborganization

Body Parameters

organization_id  inetger  

Organization Id

user_id  inetger  

User id

Check User Email

Check if user email exist in the instance.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/users/check-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"john.doe@currikistudio.org\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/users/check-email"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "john.doe@currikistudio.org"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/users/check-email',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'john.doe@currikistudio.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (422):


{
    "message": "The user already exists in the organization."
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true,
        "organization_role": "Admin",
        "organization_role_id": 1,
        "organization_joined_at": "2022-10-12",
        "projects_count": 5,
        "groups_count": 1,
        "teams_count": 2
    },
    "message": "User has been created successfully."
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/users/check-email

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

email  string  

The email of a user

Update Password

Update password of the specified user in storage.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/users/update-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"current_password\": \"Password123\",
    \"password\": \"Password321\",
    \"password_confirmation\": \"Password321\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/users/update-password"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "current_password": "Password123",
    "password": "Password321",
    "password_confirmation": "Password321"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/users/update-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'current_password' => 'Password123',
            'password' => 'Password321',
            'password_confirmation' => 'Password321',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Password has been updated successfully."
}
 

Example response (400):


{
    "errors": [
        "Invalid request."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update password."
    ]
}
 

Request      

POST api/v1/users/update-password

Body Parameters

current_password  string  

Current password of a user

password  string  

New password to be set for a user

password_confirmation  string  

Password confirmation of new password

Get All Users

Get a list of the users.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "users": [
        {
            "id": 1,
            "first_name": "John",
            "last_name": "Doe",
            "email": "john.doe@currikistudio.org",
            "organization_name": "Curriki",
            "organization_type": null,
            "job_title": "Developer",
            "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
            "phone_number": "+1234567890",
            "website": "www.currikistudio.org",
            "subscribed": true
        },
        {
            "id": 2,
            "first_name": "Jane",
            "last_name": "Doe",
            "email": "jane.doe@currikistudio.org",
            "organization_name": "Curriki",
            "organization_type": null,
            "job_title": "Manager",
            "address": "20660 Stevens Creek Blvd #333, Cupertino, CA 95014",
            "phone_number": "+1234567891",
            "website": "www.currikistudio.org",
            "subscribed": true
        }
    ]
}
 

Request      

GET api/v1/users

Get User

Get the specified user detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true,
        "organization_role": "Admin",
        "organization_role_id": 1,
        "organization_joined_at": "2022-10-12",
        "projects_count": 5,
        "groups_count": 1,
        "teams_count": 2
    },
    "message": "User has been created successfully."
}
 

Request      

GET api/v1/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Update User

Update the specified user in storage.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"John\",
    \"last_name\": \"Doe\",
    \"organization_name\": \"Curriki\",
    \"organization_type\": \"mktpnrxiwrvwfwfmmnpcyngfzfigtlfctkvvjkhbrylzmskcwjklkbbdnxryfrkiytqbqbubxrdvorfvozthujfqbmlivctlohmzjhenfnxitlvjnsxdyrwolgxfwxlkukedmljqqxmah\",
    \"website\": \"www.currikistudio.org\",
    \"job_title\": \"Developer\",
    \"address\": \"20660 Stevens Creek Blvd #332, Cupertino, CA 95014\",
    \"phone_number\": \"+1234567890\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "organization_name": "Curriki",
    "organization_type": "mktpnrxiwrvwfwfmmnpcyngfzfigtlfctkvvjkhbrylzmskcwjklkbbdnxryfrkiytqbqbubxrdvorfvozthujfqbmlivctlohmzjhenfnxitlvjnsxdyrwolgxfwxlkukedmljqqxmah",
    "website": "www.currikistudio.org",
    "job_title": "Developer",
    "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
    "phone_number": "+1234567890"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'organization_name' => 'Curriki',
            'organization_type' => 'mktpnrxiwrvwfwfmmnpcyngfzfigtlfctkvvjkhbrylzmskcwjklkbbdnxryfrkiytqbqbubxrdvorfvozthujfqbmlivctlohmzjhenfnxitlvjnsxdyrwolgxfwxlkukedmljqqxmah',
            'website' => 'www.currikistudio.org',
            'job_title' => 'Developer',
            'address' => '20660 Stevens Creek Blvd #332, Cupertino, CA 95014',
            'phone_number' => '+1234567890',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to update profile."
    ]
}
 

Example response (200):


{
    "user": {
        "id": 1,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@currikistudio.org",
        "organization_name": "Curriki",
        "organization_type": null,
        "job_title": "Developer",
        "address": "20660 Stevens Creek Blvd #332, Cupertino, CA 95014",
        "phone_number": "+1234567890",
        "website": "www.currikistudio.org",
        "subscribed": true,
        "organization_role": "Admin",
        "organization_role_id": 1,
        "organization_joined_at": "2022-10-12",
        "projects_count": 5,
        "groups_count": 1,
        "teams_count": 2
    },
    "message": "User has been created successfully."
}
 

Request      

PUT api/v1/users/{id}

PATCH api/v1/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Body Parameters

first_name  string  

First name of a user

last_name  string  

Last name of a user

organization_name  string optional  

Organization name of a user

organization_type  string optional  

Must not be greater than 255 characters.

website  string optional  

Website url of a user

job_title  string optional  

Job title of a user

address  string optional  

Address of a user

phone_number  string optional  

Phone number of a user

Delete User

Remove the specified user from storage.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete profile."
    ]
}
 

Request      

DELETE api/v1/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Users Basic Report

Returns the paginated response of the users with basic reporting.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/report/basic" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 25,
    \"query\": \"Test\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/users/report/basic"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 25,
    "query": "Test"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/report/basic',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 25,
            'query' => 'Test',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "current_page": 1,
    "data": [
        {
            "id": 1242,
            "first_name": "123security",
            "last_name": "products",
            "email": "wirelessproducts.wl@gmail.com",
            "projects_count": 2,
            "playlists_count": 9,
            "activities_count": 60
        },
        {
            "id": 824,
            "first_name": "168xoso",
            "last_name": "com",
            "email": "168xosocom@gmail.com",
            "projects_count": 2,
            "playlists_count": 9,
            "activities_count": 60
        }
    ],
    "first_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=1",
    "from": 1,
    "last_page": 816,
    "last_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=816",
    "next_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=2",
    "path": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic",
    "per_page": "2",
    "prev_page_url": null,
    "to": 2,
    "total": 1632
}
 

Request      

GET api/v1/users/report/basic

Body Parameters

size  integer optional  

Limit for getting the paginated records, Default 25.

query  string optional  

For getting the search records by name and email.

Get All Shared Projects

Get a list of the shared projects of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/projects/shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 2
}"
const url = new URL(
    "http://localhost:8000/api/v1/projects/shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/projects/shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

POST api/v1/projects/shared

Body Parameters

user_id  integer  

3. Project

APIs for project management

Get Shared Project

Get the specified shared project detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/load-shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/load-shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/load-shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "No shareable Project found."
    ]
}
 

Example response (201):


{
    "project": {
        "id": 1,
        "organization_id": 1,
        "organization_visibility_type_id": 4,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "gcr_project_visibility": true,
        "starter_project": false,
        "order": null,
        "status": 1,
        "status_text": "DRAFT",
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-09-17T09:44:27.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/load-shared

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project

Get Project Search Preview

Get the specified project search preview.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/3024/search-preview" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/search-preview"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/search-preview',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "project": {
        "id": 2459,
        "name": "Teach for America: High School Science",
        "description": "This project consists of two playlists serving as exemplar high school science digital learning instruction.",
        "thumb_url": "https://images.pexels.com/photos/593158/pexels-photo-593158.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "shared": false,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2021-05-03T15:41:08.000000Z",
        "updated_at": "2021-05-03T15:41:08.000000Z",
        "playlists": [
            {
                "id": 5078,
                "title": "The Smallest Unit of Life: The Cell",
                "project_id": 2459,
                "created_at": "2021-05-03T15:41:11.000000Z",
                "updated_at": "2021-05-03T15:41:11.000000Z",
                "activities": [
                    {
                        "id": 23090,
                        "title": "What You'll Explore",
                        "type": "h5p",
                        "thumb_url": "https://images.pexels.com/photos/593158/pexels-photo-593158.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
                        "library_name": "H5P.Accordion 1.0"
                    },
                    {
                        "id": 23091,
                        "title": "History of Cell Theory",
                        "type": "h5p",
                        "thumb_url": "https://images.pexels.com/photos/593158/pexels-photo-593158.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
                        "library_name": "H5P.Column 1.11"
                    }
                ]
            },
            {
                "id": 5079,
                "title": "Understanding the Atom",
                "project_id": 2459,
                "created_at": "2021-05-03T15:41:15.000000Z",
                "updated_at": "2021-05-03T15:41:15.000000Z",
                "activities": [
                    {
                        "id": 23097,
                        "title": "Build an Atom",
                        "type": "h5p",
                        "thumb_url": "https://images.pexels.com/photos/593158/pexels-photo-593158.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
                        "library_name": "H5P.IFrameEmbed 1.0"
                    }
                ]
            }
        ]
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/{project_id}/search-preview

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Upload thumbnail

Upload thumbnail image for a project

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/upload-thumb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"thumb\": \"(binary)\",
    \"project_id\": 16
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/upload-thumb"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "thumb": "(binary)",
    "project_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'thumb' => '(binary)',
            'project_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/projects/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "thumb": [
            "The thumb must be an image."
        ]
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/upload-thumb

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

thumb  image  

Thumbnail image to upload

project_id  integer optional  

Get Recent Projects

Get a list of the recent projects of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/recent" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/recent"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/recent',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 1,
                    "title": "Test Playlist 1",
                    "order": 1,
                    "created_at": "2020-09-10T19:21:08.000000Z",
                    "updated_at": "2020-09-10T19:21:08.000000Z"
                },
                {
                    "id": 2,
                    "title": "Test Playlist 2",
                    "order": 2,
                    "created_at": "2020-09-11T19:21:08.000000Z",
                    "updated_at": "2020-09-11T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 3,
                    "title": "Test Playlist 3",
                    "order": 1,
                    "created_at": "2020-09-12T19:21:08.000000Z",
                    "updated_at": "2020-09-12T19:21:08.000000Z"
                },
                {
                    "id": 4,
                    "title": "Test Playlist 4",
                    "order": 2,
                    "created_at": "2020-09-13T19:21:08.000000Z",
                    "updated_at": "2020-09-13T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/recent

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get Default Projects

Get a list of the default projects.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/default?size=10&order_by_type=ASC+OR+DESC&order_by_column8=name%2C+created_at" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 14,
    \"order_by_column\": \"name\",
    \"order_by_type\": \"DESC\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/default"
);

const params = {
    "size": "10",
    "order_by_type": "ASC OR DESC",
    "order_by_column8": "name, created_at",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 14,
    "order_by_column": "name",
    "order_by_type": "DESC"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/default',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'size'=> '10',
            'order_by_type'=> 'ASC OR DESC',
            'order_by_column8'=> 'name, created_at',
        ],
        'json' => [
            'size' => 14,
            'order_by_column' => 'name',
            'order_by_type' => 'DESC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


array
 

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 1,
                    "title": "Test Playlist 1",
                    "order": 1,
                    "created_at": "2020-09-10T19:21:08.000000Z",
                    "updated_at": "2020-09-10T19:21:08.000000Z"
                },
                {
                    "id": 2,
                    "title": "Test Playlist 2",
                    "order": 2,
                    "created_at": "2020-09-11T19:21:08.000000Z",
                    "updated_at": "2020-09-11T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 3,
                    "title": "Test Playlist 3",
                    "order": 1,
                    "created_at": "2020-09-12T19:21:08.000000Z",
                    "updated_at": "2020-09-12T19:21:08.000000Z"
                },
                {
                    "id": 4,
                    "title": "Test Playlist 4",
                    "order": 2,
                    "created_at": "2020-09-13T19:21:08.000000Z",
                    "updated_at": "2020-09-13T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/default

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

Id of an organization

Query Parameters

size  integer optional  

order_by_type  string optional  

order_by_column8  string optional  

Body Parameters

size  integer optional  

order_by_column  string optional  

Must be one of id, name, order.status, or created_at.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Get All Projects Detail

Get a list of the projects of a user with detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/detail" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/detail"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/detail',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 1,
                    "title": "Test Playlist 1",
                    "order": 1,
                    "created_at": "2020-09-10T19:21:08.000000Z",
                    "updated_at": "2020-09-10T19:21:08.000000Z"
                },
                {
                    "id": 2,
                    "title": "Test Playlist 2",
                    "order": 2,
                    "created_at": "2020-09-11T19:21:08.000000Z",
                    "updated_at": "2020-09-11T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "playlists": [
                {
                    "id": 3,
                    "title": "Test Playlist 3",
                    "order": 1,
                    "created_at": "2020-09-12T19:21:08.000000Z",
                    "updated_at": "2020-09-12T19:21:08.000000Z"
                },
                {
                    "id": 4,
                    "title": "Test Playlist 4",
                    "order": 2,
                    "created_at": "2020-09-13T19:21:08.000000Z",
                    "updated_at": "2020-09-13T19:21:08.000000Z"
                }
            ],
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/detail

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

GET api/v1/projects/update-order

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/update-order" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/update-order"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/update-order',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/projects/update-order

Get All Favorite Projects of login user

Get a list of the favorite projects of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/favorites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 17,
    \"order_by_column\": \"order.status\",
    \"order_by_type\": \"asc\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/favorites"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 17,
    "order_by_column": "order.status",
    "order_by_type": "asc"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/favorites',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 17,
            'order_by_column' => 'order.status',
            'order_by_type' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/favorites

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

Organization  string optional  

$suborganization

Body Parameters

size  integer optional  

order_by_column  string optional  

Must be one of id, name, order.status, or created_at.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Reorder Projects

Reorder projects of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/reorder" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"projects\": [
        1,
        2,
        3
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/reorder"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "projects": [
        1,
        2,
        3
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/reorder',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'projects' => [
                1,
                2,
                3,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/reorder

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

Body Parameters

projects  string[]  

Projects of a user

Update Project's Order

Update project's order.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/1/order" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/1/order"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "order": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/1/order',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'order' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project reorder has been successful."
}
 

Example response (500):


{
    "errors": [
        "Failed to reorder project."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/order

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

Id of the project whose order is to be updated

Body Parameters

order  integer  

New order to set for the project

Share Project

Share the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to share project."
    ]
}
 

Example response (200):


{
    "project": {
        "id": 1,
        "organization_id": 1,
        "organization_visibility_type_id": 4,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "gcr_project_visibility": true,
        "starter_project": false,
        "order": null,
        "status": 1,
        "status_text": "DRAFT",
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-09-17T09:44:27.000000Z"
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/share

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

project  string  

The Id of a project

suborganization  string  

The Id of a suborganization

Clone Project

Clone the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/clone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/clone"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "1"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/clone',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project is being cloned|duplicated in background!"
}
 

Example response (400):


{
    "errors": [
        "Not a Public Project."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/clone

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Body Parameters

user_id  optional optional  

The Id of a user

Export Project

Export the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/export',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project is being cloned|duplicated in background!"
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/export

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of an organization

project  string  

The Id of a project

Export Noovo Project

Export the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/export-noovo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/export-noovo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/export-noovo',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project is being cloned|duplicated in background!"
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/export-noovo

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Import Project

Import the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/import" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"project\": \"incidunt\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/import"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "project": "incidunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/import',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'project' => 'incidunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project is being cloned|duplicated in background!"
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/import

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Body Parameters

project  string  

Remove Share Project

Remove share the specified project of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/remove-share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/remove-share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/remove-share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to remove share project."
    ]
}
 

Example response (200):


{
    "project": {
        "id": 1,
        "name": "Test Project",
        "description": "This is a test project.",
        "thumb_url": "https://images.pexels.com/photos/2832382",
        "shared": false,
        "starter_project": null,
        "is_public": true,
        "created_at": "2020-09-06T19:21:08.000000Z",
        "updated_at": "2020-09-06T19:21:08.000000Z"
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/remove-share

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Favorite/Unfavorite Project

Favorite/Unfavorite the specified project for a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/favorite" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/favorite"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/favorite',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "This resource will be removed from your Favorites. You will no longer be able to reuse/remix its contents into your projects."
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects/{project_id}/favorite

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Get All Organization Team's Projects

Get a list of the team's projects of an organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/team-projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/team-projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/team-projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 10,
            "organization_id": 1,
            "organization_visibility_type_id": 1,
            "name": "project 1",
            "description": "test  fffff  rrrr",
            "thumb_url": "",
            "shared": true,
            "starter_project": false,
            "order": 2,
            "status": 1,
            "status_text": "DRAFT",
            "indexing": null,
            "is_user_starter": false,
            "indexing_text": "NOT REQUESTED",
            "created_at": "2021-08-17T11:15:58.000000Z",
            "updated_at": "2021-08-17T11:15:58.000000Z",
            "users": [
                {
                    "id": 1,
                    "name": "Test User",
                    "email": "test@test.com",
                    "email_verified_at": "2021-03-05T15:53:34.000000Z",
                    "created_at": null,
                    "updated_at": null,
                    "first_name": "Test",
                    "last_name": "User",
                    "organization_name": null,
                    "job_title": null,
                    "address": null,
                    "phone_number": null,
                    "organization_type": null,
                    "website": null,
                    "deleted_at": null,
                    "role": null,
                    "gapi_access_token": null,
                    "hubspot": false,
                    "subscribed": false,
                    "subscribed_ip": null,
                    "membership_type_id": 2,
                    "pivot": {
                        "project_id": 10,
                        "user_id": 1,
                        "role": "owner",
                        "created_at": "2021-08-17T11:15:58.000000Z",
                        "updated_at": "2021-08-17T11:15:58.000000Z"
                    }
                }
            ],
            "team": {
                "id": 63,
                "name": "Team Test One",
                "created_at": "2021-08-17T11:15:57.000000Z",
                "updated_at": "2021-08-17T11:15:57.000000Z",
                "deleted_at": null,
                "description": "desc",
                "indexing": null,
                "organization_id": 1,
                "original_user": null
            }
        },
        {
            "id": 11,
            "organization_id": 1,
            "organization_visibility_type_id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "",
            "shared": true,
            "starter_project": false,
            "order": 2,
            "status": 1,
            "status_text": "DRAFT",
            "indexing": null,
            "is_user_starter": false,
            "indexing_text": "NOT REQUESTED",
            "created_at": "2021-08-17T11:21:09.000000Z",
            "updated_at": "2021-08-23T17:17:46.000000Z",
            "users": [
                {
                    "id": 1,
                    "name": "Test User 2",
                    "email": "test2@test.com",
                    "email_verified_at": "2021-03-05T15:53:34.000000Z",
                    "created_at": null,
                    "updated_at": null,
                    "first_name": "Test",
                    "last_name": "User 2",
                    "organization_name": null,
                    "job_title": null,
                    "address": null,
                    "phone_number": null,
                    "organization_type": null,
                    "website": null,
                    "deleted_at": null,
                    "role": null,
                    "gapi_access_token": null,
                    "hubspot": false,
                    "subscribed": false,
                    "subscribed_ip": null,
                    "membership_type_id": 2,
                    "pivot": {
                        "project_id": 11,
                        "user_id": 1,
                        "role": "owner",
                        "created_at": "2021-08-17T11:21:09.000000Z",
                        "updated_at": "2021-08-17T11:21:09.000000Z"
                    }
                }
            ],
            "team": {
                "id": 64,
                "name": "Team 2 Test",
                "created_at": "2021-08-17T11:21:08.000000Z",
                "updated_at": "2021-08-17T11:21:08.000000Z",
                "deleted_at": null,
                "description": "desc",
                "indexing": null,
                "organization_id": 2,
                "original_user": null
            }
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/team-projects?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/team-projects?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/team-projects",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/team-projects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get All Projects of login user

Get a list of the projects of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects?size=10&order_by_type=ASC+OR+DESC&order_by_column8=name%2C+created_at" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 20,
    \"order_by_column\": \"id\",
    \"order_by_type\": \"asc\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects"
);

const params = {
    "size": "10",
    "order_by_type": "ASC OR DESC",
    "order_by_column8": "name, created_at",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 20,
    "order_by_column": "id",
    "order_by_type": "asc"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'size'=> '10',
            'order_by_type'=> 'ASC OR DESC',
            'order_by_column8'=> 'name, created_at',
        ],
        'json' => [
            'size' => 20,
            'order_by_column' => 'id',
            'order_by_type' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


array
 

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

Id of an organization

Query Parameters

size  integer optional  

order_by_type  string optional  

order_by_column8  string optional  

Body Parameters

size  integer optional  

order_by_column  string optional  

Must be one of id, name, order.status, or created_at.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Create Project

Create a new project in storage for a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Test Project\",
    \"description\": \"This is a test project.\",
    \"thumb_url\": \"https:\\/\\/images.pexels.com\\/photos\\/2832382\",
    \"organization_visibility_type_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Test Project",
    "description": "This is a test project.",
    "thumb_url": "https:\/\/images.pexels.com\/photos\/2832382",
    "organization_visibility_type_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Test Project',
            'description' => 'This is a test project.',
            'thumb_url' => 'https://images.pexels.com/photos/2832382',
            'organization_visibility_type_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create project. Please try again later."
    ]
}
 

Example response (201):


{
    "project": {
        "id": 1,
        "organization_id": 1,
        "organization_visibility_type_id": 4,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "gcr_project_visibility": true,
        "starter_project": false,
        "order": null,
        "status": 1,
        "status_text": "DRAFT",
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-09-17T09:44:27.000000Z"
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/projects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Name of a project

description  string  

Description of a project

thumb_url  string  

Thumbnail Url of a project

organization_visibility_type_id  integer  

Id of the organization visibility type

team_id  string optional  

Get Project

Get the specified project detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/3024" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "project": {
        "id": 1,
        "organization_id": 1,
        "organization_visibility_type_id": 4,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "gcr_project_visibility": true,
        "starter_project": false,
        "order": null,
        "status": 1,
        "status_text": "DRAFT",
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-09-17T09:44:27.000000Z"
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the project.

project  string  

The Id of a project

suborganization  string  

The Id of a suborganization

Update Project

Update the specified project of a user.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Test Project\",
    \"description\": \"This is a test project.\",
    \"thumb_url\": \"https:\\/\\/images.pexels.com\\/photos\\/2832382\",
    \"organization_visibility_type_id\": 1,
    \"user_id\": 1,
    \"shared\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Test Project",
    "description": "This is a test project.",
    "thumb_url": "https:\/\/images.pexels.com\/photos\/2832382",
    "organization_visibility_type_id": 1,
    "user_id": 1,
    "shared": true
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Test Project',
            'description' => 'This is a test project.',
            'thumb_url' => 'https://images.pexels.com/photos/2832382',
            'organization_visibility_type_id' => 1,
            'user_id' => 1,
            'shared' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to update project."
    ]
}
 

Example response (200):


{
    "project": {
        "id": 1,
        "organization_id": 1,
        "organization_visibility_type_id": 4,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "gcr_project_visibility": true,
        "starter_project": false,
        "order": null,
        "status": 1,
        "status_text": "DRAFT",
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-09-17T09:44:27.000000Z"
    }
}
 

Request      

PUT api/v1/suborganization/{suborganization_id}/projects/{id}

PATCH api/v1/suborganization/{suborganization_id}/projects/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the project.

project  string  

The Id of a project

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Name of a project

description  string  

Description of a project

thumb_url  string  

Thumbnail Url of a project

organization_visibility_type_id  integer  

Id of the organization visibility type

user_id  integer optional  

shared  boolean optional  

Remove Project

Remove the specified project of a user.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganization/1/projects/3024" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete project."
    ]
}
 

Request      

DELETE api/v1/suborganization/{suborganization_id}/projects/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

project  string  

The Id of a project

Get Projects by Ids

Get the Projects by Ids

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/ducimus/projects/by-ids" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/ducimus/projects/by-ids"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/ducimus/projects/by-ids',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


Projects
 

Request      

POST api/v1/suborganization/{suborganization}/projects/by-ids

URL Parameters

suborganization  string  

The suborganization.

Get All Organization Projects

Get a list of the projects of an organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"Vivensity\",
    \"indexing\": \"2\",
    \"exclude_starter\": \"true\",
    \"starter_project\": \"false\",
    \"shared\": false,
    \"created_from\": \"2022-12-01\",
    \"created_to\": \"2022-12-01\",
    \"updated_from\": \"2022-12-01\",
    \"updated_to\": \"2022-12-01\",
    \"author_id\": 19,
    \"order_by_column\": \"name\",
    \"order_by_type\": \"asc\",
    \"size\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "Vivensity",
    "indexing": "2",
    "exclude_starter": "true",
    "starter_project": "false",
    "shared": false,
    "created_from": "2022-12-01",
    "created_to": "2022-12-01",
    "updated_from": "2022-12-01",
    "updated_to": "2022-12-01",
    "author_id": 19,
    "order_by_column": "name",
    "order_by_type": "asc",
    "size": 10
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'Vivensity',
            'indexing' => '2',
            'exclude_starter' => 'true',
            'starter_project' => 'false',
            'shared' => false,
            'created_from' => '2022-12-01',
            'created_to' => '2022-12-01',
            'updated_from' => '2022-12-01',
            'updated_to' => '2022-12-01',
            'author_id' => 19,
            'order_by_column' => 'name',
            'order_by_type' => 'asc',
            'size' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/projects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Query to search suborganization against

indexing  string optional  

Must be one of 0, 1, 2, or 3.

exclude_starter  string optional  

Must be one of true.

starter_project  string optional  

Must be one of true or false.

shared  boolean optional  

created_from  string optional  

Must be a valid date in the format Y-m-d.

created_to  string optional  

Must be a valid date in the format Y-m-d.

updated_from  string optional  

Must be a valid date in the format Y-m-d.

updated_to  string optional  

Must be a valid date in the format Y-m-d.

author_id  integer optional  

order_by_column  string optional  

To sort data with specific column

order_by_type  string optional  

To sort data in ascending or descending order

size  integer optional  

Size to show per page records

Project Indexing

Modify the index value of a project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/indexes/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/indexes/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/indexes/3',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Library status changed successfully!",
}
 

Example response (500):


{
    "errors": [
        "Invalid index value provided."
    ]
}
 

Request      

GET api/v1/projects/{project_id}/indexes/{index}

URL Parameters

project_id  integer  

The ID of the project.

index  string  

New Integer Index Value, 1 => 'REQUESTED', 2 => 'NOT APPROVED', 3 => 'APPROVED'.

project  string  

Project Id.

Starter Project Toggle

Toggle the starter flag of any project

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/projects/starter/veniam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"projects\": [
        1,
        2,
        3
    ],
    \"flag\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/projects/starter/veniam"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "projects": [
        1,
        2,
        3
    ],
    "flag": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/projects/starter/veniam',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'projects' => [
                1,
                2,
                3,
            ],
            'flag' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Starter Projects status updated successfully!",
}
 

Example response (500):


{
    "errors": [
        "Choose at-least one project."
    ]
}
 

Request      

POST api/v1/projects/starter/{flag}

URL Parameters

flag  string  

Body Parameters

projects  string[]  

Projects Ids array.

flag  boolean  

Selected projects remove or make starter.

4. Playlist

APIs for playlist management

Get Shared Playlist

Get the specified shared playlist of a Project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/186/load-shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/load-shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/186/load-shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "No shareable Project found."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/playlists/{playlist_id}/load-shared

URL Parameters

playlist_id  integer  

The ID of the playlist.

playlist  string  

The Id of a playlist

Get Shared Playlist

Get the specified shared playlist detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/playlists/186/load-shared-playlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186/load-shared-playlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/playlists/186/load-shared-playlist',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "No shareable Playlist found."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/playlists/{playlist_id}/load-shared-playlist

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

project  string  

The Id of a playlist

Get All Shared Playlists of a Project

Get the list of shared playlists detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/shared-playlists" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/shared-playlists"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/shared-playlists',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "No shareable Playlist found."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/shared-playlists

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project

GET api/v1/playlists/update-order

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/update-order" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/update-order"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/update-order',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
 


 

Request      

GET api/v1/playlists/update-order

Reorder Playlists

Reorder playlists of a project.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/projects/3024/playlists/reorder" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"playlists\": [
        \"nulla\"
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/reorder"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "playlists": [
        "nulla"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/projects/3024/playlists/reorder',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'playlists' => [
                'nulla',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "playlists": [
        {
            "id": 1,
            "title": "Math Playlist",
            "order": 0,
            "is_public": true,
            "gcr_playlist_visibility": true,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "Test Project",
                "description": "This is a test project.",
                "thumb_url": "https://images.pexels.com/photos/2832382",
                "shared": true,
                "starter_project": null,
                "users": [
                    {
                        "id": 1,
                        "first_name": "John",
                        "last_name": "Doe",
                        "email": "john.doe@currikistudio.org",
                        "role": "owner"
                    }
                ],
                "is_public": true,
                "created_at": "2020-09-06T19:21:08.000000Z",
                "updated_at": "2020-09-06T19:21:08.000000Z"
            },
            "activities": [
                {
                    "id": 1,
                    "playlist_id": 1,
                    "title": "Audio Record",
                    "type": "h5p",
                    "content": "Audio Record content",
                    "shared": true,
                    "order": 0,
                    "thumb_url": "/storage/activities/3vVpHHh75MJHOV6a6iZdy13luBaiNn1SrniYpBbQ.png",
                    "subject_id": "Career & Technical Education",
                    "education_level_id": null,
                    "h5p_content": {
                        "id": 19430,
                        "user_id": 1,
                        "title": "record",
                        "library_id": 98,
                        "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "filtered": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing "Retry" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "slug": "record",
                        "embed_type": "div",
                        "disable": 9,
                        "content_type": null,
                        "authors": null,
                        "source": null,
                        "year_from": null,
                        "year_to": null,
                        "license": "U",
                        "license_version": null,
                        "license_extras": null,
                        "author_comments": null,
                        "changes": null,
                        "default_language": null,
                        "created_at": "2020-09-27T07:14:57.000000Z",
                        "updated_at": "2020-09-27T07:14:57.000000Z"
                    },
                    "is_public": false,
                    "created_at": "2020-09-27T07:14:57.000000Z",
                    "updated_at": "2020-09-27T07:14:57.000000Z"
                },
                {
                    "id": 2,
                    "playlist_id": 1,
                    "title": "Language Arts",
                    "type": "h5p",
                    "content": "Language Arts content",
                    "shared": true,
                    "order": 1,
                    "thumb_url": "/storage/activities/w2LXV4VMPgccjJyZbs16wSzglX1s58K5NFfFp7ed.png",
                    "subject_id": "Language Arts",
                    "education_level_id": null,
                    "h5p_content": {
                        "id": 19431,
                        "user_id": 1,
                        "title": "fghfhg",
                        "library_id": 98,
                        "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "filtered": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing "Retry" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "slug": "fghfhg",
                        "embed_type": "div",
                        "disable": 9,
                        "content_type": null,
                        "authors": null,
                        "source": null,
                        "year_from": null,
                        "year_to": null,
                        "license": "U",
                        "license_version": null,
                        "license_extras": null,
                        "author_comments": null,
                        "changes": null,
                        "default_language": null,
                        "created_at": "2020-09-07T07:15:31.000000Z",
                        "updated_at": "2020-09-07T07:15:31.000000Z"
                    },
                    "is_public": false,
                    "created_at": "2020-09-07T07:15:31.000000Z",
                    "updated_at": "2020-09-07T07:15:31.000000Z"
                }
            ],
            "created_at": "2020-09-07T17:01:24.000000Z",
            "updated_at": "2020-09-07T17:01:24.000000Z"
        },
        {
            "id": 2,
            "title": "Music Playlist",
            "order": 1,
            "is_public": false,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "Test Project",
                "description": "This is a test project.",
                "thumb_url": "https://images.pexels.com/photos/2832382",
                "shared": true,
                "starter_project": null,
                "users": [
                    {
                        "id": 1,
                        "first_name": "John",
                        "last_name": "Doe",
                        "email": "john.doe@currikistudio.org",
                        "role": "owner"
                    }
                ],
                "is_public": true,
                "created_at": "2020-09-06T19:21:08.000000Z",
                "updated_at": "2020-09-06T19:21:08.000000Z"
            },
            "activities": [],
            "created_at": "2020-09-16T18:21:29.000000Z",
            "updated_at": "2020-09-16T18:21:29.000000Z"
        }
    ]
}
 

Request      

POST api/v1/projects/{project_id}/playlists/reorder

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project

Body Parameters

playlists  string[]  

Playlists of a project

Clone Playlist

Clone a playlist of a project.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/projects/3024/playlists/186/clone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186/clone"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/projects/3024/playlists/186/clone',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Playlist is being cloned|duplicated in background!"
}
 

Example response (500):


{
    "errors": [
        "Not a Public Playlist."
    ]
}
 

Request      

POST api/v1/projects/{project_id}/playlists/{playlist_id}/clone

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

project  string  

The Id of a project

playlist  string  

The Id of a playlist

Get Playlists

Get a list of the playlists of a project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/playlists" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/playlists',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "playlists": [
        {
            "id": 1,
            "title": "Math Playlist",
            "order": 0,
            "is_public": true,
            "gcr_playlist_visibility": true,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "Test Project",
                "description": "This is a test project.",
                "thumb_url": "https://images.pexels.com/photos/2832382",
                "shared": true,
                "starter_project": null,
                "users": [
                    {
                        "id": 1,
                        "first_name": "John",
                        "last_name": "Doe",
                        "email": "john.doe@currikistudio.org",
                        "role": "owner"
                    }
                ],
                "is_public": true,
                "created_at": "2020-09-06T19:21:08.000000Z",
                "updated_at": "2020-09-06T19:21:08.000000Z"
            },
            "activities": [
                {
                    "id": 1,
                    "playlist_id": 1,
                    "title": "Audio Record",
                    "type": "h5p",
                    "content": "Audio Record content",
                    "shared": true,
                    "order": 0,
                    "thumb_url": "/storage/activities/3vVpHHh75MJHOV6a6iZdy13luBaiNn1SrniYpBbQ.png",
                    "subject_id": "Career & Technical Education",
                    "education_level_id": null,
                    "h5p_content": {
                        "id": 19430,
                        "user_id": 1,
                        "title": "record",
                        "library_id": 98,
                        "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "filtered": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing "Retry" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "slug": "record",
                        "embed_type": "div",
                        "disable": 9,
                        "content_type": null,
                        "authors": null,
                        "source": null,
                        "year_from": null,
                        "year_to": null,
                        "license": "U",
                        "license_version": null,
                        "license_extras": null,
                        "author_comments": null,
                        "changes": null,
                        "default_language": null,
                        "created_at": "2020-09-27T07:14:57.000000Z",
                        "updated_at": "2020-09-27T07:14:57.000000Z"
                    },
                    "is_public": false,
                    "created_at": "2020-09-27T07:14:57.000000Z",
                    "updated_at": "2020-09-27T07:14:57.000000Z"
                },
                {
                    "id": 2,
                    "playlist_id": 1,
                    "title": "Language Arts",
                    "type": "h5p",
                    "content": "Language Arts content",
                    "shared": true,
                    "order": 1,
                    "thumb_url": "/storage/activities/w2LXV4VMPgccjJyZbs16wSzglX1s58K5NFfFp7ed.png",
                    "subject_id": "Language Arts",
                    "education_level_id": null,
                    "h5p_content": {
                        "id": 19431,
                        "user_id": 1,
                        "title": "fghfhg",
                        "library_id": 98,
                        "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "filtered": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing "Retry" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                        "slug": "fghfhg",
                        "embed_type": "div",
                        "disable": 9,
                        "content_type": null,
                        "authors": null,
                        "source": null,
                        "year_from": null,
                        "year_to": null,
                        "license": "U",
                        "license_version": null,
                        "license_extras": null,
                        "author_comments": null,
                        "changes": null,
                        "default_language": null,
                        "created_at": "2020-09-07T07:15:31.000000Z",
                        "updated_at": "2020-09-07T07:15:31.000000Z"
                    },
                    "is_public": false,
                    "created_at": "2020-09-07T07:15:31.000000Z",
                    "updated_at": "2020-09-07T07:15:31.000000Z"
                }
            ],
            "created_at": "2020-09-07T17:01:24.000000Z",
            "updated_at": "2020-09-07T17:01:24.000000Z"
        },
        {
            "id": 2,
            "title": "Music Playlist",
            "order": 1,
            "is_public": false,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "Test Project",
                "description": "This is a test project.",
                "thumb_url": "https://images.pexels.com/photos/2832382",
                "shared": true,
                "starter_project": null,
                "users": [
                    {
                        "id": 1,
                        "first_name": "John",
                        "last_name": "Doe",
                        "email": "john.doe@currikistudio.org",
                        "role": "owner"
                    }
                ],
                "is_public": true,
                "created_at": "2020-09-06T19:21:08.000000Z",
                "updated_at": "2020-09-06T19:21:08.000000Z"
            },
            "activities": [],
            "created_at": "2020-09-16T18:21:29.000000Z",
            "updated_at": "2020-09-16T18:21:29.000000Z"
        }
    ]
}
 

Request      

GET api/v1/projects/{project_id}/playlists

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project

Create Playlist

Create a new playlist of a project.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/projects/3024/playlists" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Math Playlist\",
    \"order\": 0
}"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Math Playlist",
    "order": 0
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/projects/3024/playlists',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Math Playlist',
            'order' => 0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create playlist. Please try again later."
    ]
}
 

Example response (201):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

POST api/v1/projects/{project_id}/playlists

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project Example 1

Body Parameters

title  string  

The title of a playlist

order  integer optional  

The order number of a playlist

Get Playlist

Get the specified playlist of a project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/playlists/186" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/playlists/186',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid project or playlist id."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/playlists/{id}

URL Parameters

project_id  integer  

The ID of the project.

id  integer  

The ID of the playlist.

project  string  

The Id of a project

playlist  string  

The Id of a playlist

Update Playlist

Update the specified playlist of a project.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/projects/3024/playlists/186" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Math Playlist\",
    \"order\": 0
}"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Math Playlist",
    "order": 0
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/projects/3024/playlists/186',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Math Playlist',
            'order' => 0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid project or playlist id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update playlist."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

PUT api/v1/projects/{project_id}/playlists/{id}

PATCH api/v1/projects/{project_id}/playlists/{id}

URL Parameters

project_id  integer  

The ID of the project.

id  integer  

The ID of the playlist.

project  string  

The Id of a project

playlist  string  

The Id of a playlist

Body Parameters

title  string  

The title of a playlist

order  integer optional  

The order number of a playlist

Remove Playlist

Remove the specified playlist of a project.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/projects/3024/playlists/186" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/projects/3024/playlists/186',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Playlist has been deleted successfully."
}
 

Example response (400):


{
    "errors": [
        "Invalid project or playlist id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to delete playlist."
    ]
}
 

Request      

DELETE api/v1/projects/{project_id}/playlists/{id}

URL Parameters

project_id  integer  

The ID of the project.

id  integer  

The ID of the playlist.

project  string  

The Id of a project

playlist  string  

The Id of a playlist

Get Playlist Search Preview

Get the specified playlist search preview.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/playlists/186/search-preview" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/playlists/186/search-preview"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/playlists/186/search-preview',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


{
    "message": [
        "Playlist is not available."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/playlists/{playlist_id}/search-preview

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

playlist_id  integer  

The ID of the playlist.

suborganization  string  

The Id of a suborganization

playlist  string  

The Id of a playlist

Share playlist

Share the specified playlist of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/playlists/186/share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186/share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/playlists/186/share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to share playlist."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/playlists/{playlist_id}/share

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

playlist  string  

The Id of a playlist

project  string  

The Id of a project

Remove Share playlist

Remove Share the specified playlist of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/playlists/186/remove-share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/playlists/186/remove-share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/playlists/186/remove-share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to remove share playlist."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/projects/{project_id}/playlists/{playlist_id}/remove-share

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

playlist  string  

The Id of a playlist

project  string  

The Id of a project

Get Lti Playlist

Get the lti playlist of a project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/186/lti" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/lti"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/186/lti',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Math Playlist",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "gcr_playlist_visibility": true,
        "project": {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        "activities": [],
        "created_at": "2020-09-07T17:01:24.000000Z",
        "updated_at": "2020-09-07T17:01:24.000000Z"
    }
}
 

Request      

GET api/v1/playlists/{playlist_id}/lti

URL Parameters

playlist_id  integer  

The ID of the playlist.

project  string  

The Id of a project Example 1

5. Activity

APIs for activity management

Get Activity Search Preview

Get the specified activity search preview.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/activities/761/search-preview" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/activities/761/search-preview"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/activities/761/search-preview',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/activities/{activity_id}/search-preview

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

activity_id  integer  

The ID of the activity.

suborganization  string  

The Id of a suborganization

activity  string  

The Id of a activity

Clone Activity

Clone the specified activity of a playlist.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/playlists/186/activities/761/clone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities/761/clone"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/playlists/186/activities/761/clone',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity is being cloned|duplicated in background!"
}
 

Example response (400):


{
    "errors": [
        "Not a Public Activity."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to clone activity."
    ]
}
 

Request      

POST api/v1/playlists/{playlist_id}/activities/{activity_id}/clone

URL Parameters

playlist_id  integer  

The ID of the playlist.

activity_id  integer  

The ID of the activity.

playlist  string  

The Id of a playlist

activity  string  

The Id of a activity

Upload Activity thumbnail

Upload thumbnail image for a activity

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/activities/upload-thumb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"thumb\": \"(binary)\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/activities/upload-thumb"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "thumb": "(binary)"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/activities/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'thumb' => '(binary)',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/activities/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/activities/upload-thumb

Body Parameters

thumb  image  

Thumbnail image to upload

Share Activity

Share the specified activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to share activity."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": true,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/activities/{activity_id}/share

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

GET api/v1/activities/update-order

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/update-order" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/update-order"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/update-order',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/activities/update-order

Remove Share Activity

Remove share the specified activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/remove-share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/remove-share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/remove-share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to remove share activity."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/activities/{activity_id}/remove-share

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

Get Activity Detail

Get the specified activity in detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/detail" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/detail"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/detail',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist": {
            "id": 1,
            "title": "The Engineering & Design Behind Golf Balls",
            "is_public": true,
            "order": 0,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "The Science of Golf",
                "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
                "starter_project": false,
                "shared": false,
                "is_public": true,
                "users": [
                    {
                        "id": 1,
                        "email": "john.doe@currikistudio.org",
                        "first_name": "John",
                        "last_name": "Doe",
                        "role": "owner"
                    }
                ],
                "created_at": "2020-04-30T20:03:12.000000Z",
                "updated_at": "2020-07-11T12:51:07.000000Z"
            },
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "h5p": "{\"params\":{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}},\"metadata\":{\"title\":\"Science of Golf: Why Balls Have Dimples\",\"license\":\"U\"}}",
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "library_name": "H5P.InteractiveVideo",
        "major_version": 1,
        "minor_version": 21,
        "user_name": null,
        "user_id": null,
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/activities/{activity_id}/detail

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

H5P Activity

Get H5P Activity details

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/h5p" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/h5p"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/h5p',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activity": {
        "id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p": {
            "settings": {
                "baseUrl": "https://www.currikistudio.org/api",
                "url": "https://www.currikistudio.org/api/storage/h5p",
                "postUserStatistics": true,
                "ajax": {
                    "setFinished": "https://www.currikistudio.org/api/api/h5p/ajax/url",
                    "contentUserData": "https://www.currikistudio.org/api/api/h5p/ajax/content-user-data/?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
                },
                "saveFreq": false,
                "siteUrl": "https://www.currikistudio.org/api",
                "l10n": {
                    "H5P": {
                        "fullscreen": "Fullscreen",
                        "disableFullscreen": "Disable fullscreen",
                        "download": "Download",
                        "copyrights": "Rights of use",
                        "embed": "Embed",
                        "reuseDescription": "Reuse this content.",
                        "size": "Size",
                        "showAdvanced": "Show advanced",
                        "hideAdvanced": "Hide advanced",
                        "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                        "copyrightInformation": "Rights of use",
                        "close": "Close",
                        "title": "Title",
                        "author": "Author",
                        "year": "Year",
                        "source": "Source",
                        "license": "License",
                        "thumbnail": "Thumbnail",
                        "noCopyrights": "No copyright information available for this content.",
                        "downloadDescription": "Download this content as a H5P file.",
                        "copyrightsDescription": "View copyright information for this content.",
                        "embedDescription": "View the embed code for this content.",
                        "h5pDescription": "Visit H5P.org to check out more cool content.",
                        "contentChanged": "This content has changed since you last used it.",
                        "startingOver": "You'll be starting over.",
                        "confirmDialogHeader": "Confirm action",
                        "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                        "cancelLabel": "Cancel",
                        "confirmLabel": "Confirm",
                        "reuse": "Reuse",
                        "reuseContent": "Reuse Content"
                    }
                },
                "hubIsEnabled": false,
                "user": {
                    "name": "John Doe",
                    "email": "john.doe@currikistudio.org"
                },
                "editor": {
                    "filesPath": "https://www.currikistudio.org/api/storage/h5p/editor",
                    "fileIcon": {
                        "path": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                        "width": 50,
                        "height": 50
                    },
                    "ajaxPath": "https://www.currikistudio.org/api/api/v1/h5p/ajax/",
                    "libraryUrl": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/",
                    "copyrightSemantics": {
                        "name": "copyright",
                        "type": "group",
                        "label": "Copyright information",
                        "fields": [
                            {
                                "name": "title",
                                "type": "text",
                                "label": "Title",
                                "placeholder": "La Gioconda",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Author",
                                "placeholder": "Leonardo da Vinci",
                                "optional": true
                            },
                            {
                                "name": "year",
                                "type": "text",
                                "label": "Year(s)",
                                "placeholder": "1503 - 1517",
                                "optional": true
                            },
                            {
                                "name": "source",
                                "type": "text",
                                "label": "Source",
                                "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                                "optional": true,
                                "regexp": {
                                    "pattern": "^http[s]?://.+",
                                    "modifiers": "i"
                                }
                            },
                            {
                                "name": "license",
                                "type": "select",
                                "label": "License",
                                "default": "U",
                                "options": [
                                    {
                                        "value": "U",
                                        "label": "Undisclosed"
                                    },
                                    {
                                        "value": "CC BY",
                                        "label": "Attribution",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-SA",
                                        "label": "Attribution-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-ND",
                                        "label": "Attribution-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC",
                                        "label": "Attribution-NonCommercial",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-SA",
                                        "label": "Attribution-NonCommercial-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-ND",
                                        "label": "Attribution-NonCommercial-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "GNU GPL",
                                        "label": "General Public License",
                                        "versions": [
                                            {
                                                "value": "v3",
                                                "label": "Version 3"
                                            },
                                            {
                                                "value": "v2",
                                                "label": "Version 2"
                                            },
                                            {
                                                "value": "v1",
                                                "label": "Version 1"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "PD",
                                        "label": "Public Domain",
                                        "versions": [
                                            {
                                                "value": "-",
                                                "label": "-"
                                            },
                                            {
                                                "value": "CC0 1.0",
                                                "label": "CC0 1.0 Universal"
                                            },
                                            {
                                                "value": "CC PDM",
                                                "label": "Public Domain Mark"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "C",
                                        "label": "Copyright"
                                    }
                                ]
                            },
                            {
                                "name": "version",
                                "type": "select",
                                "label": "License Version",
                                "options": []
                            }
                        ]
                    },
                    "metadataSemantics": [
                        {
                            "name": "title",
                            "type": "text",
                            "label": "Title",
                            "placeholder": "La Gioconda"
                        },
                        {
                            "name": "license",
                            "type": "select",
                            "label": "License",
                            "default": "U",
                            "options": [
                                {
                                    "value": "U",
                                    "label": "Undisclosed"
                                },
                                {
                                    "type": "optgroup",
                                    "label": "Creative Commons",
                                    "options": [
                                        {
                                            "value": "CC BY",
                                            "label": "Attribution (CC BY)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-SA",
                                            "label": "Attribution-ShareAlike (CC BY-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-ND",
                                            "label": "Attribution-NoDerivs (CC BY-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC",
                                            "label": "Attribution-NonCommercial (CC BY-NC)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-SA",
                                            "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-ND",
                                            "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC0 1.0",
                                            "label": "Public Domain Dedication (CC0)"
                                        },
                                        {
                                            "value": "CC PDM",
                                            "label": "Public Domain Mark (PDM)"
                                        }
                                    ]
                                },
                                {
                                    "value": "GNU GPL",
                                    "label": "General Public License v3"
                                },
                                {
                                    "value": "PD",
                                    "label": "Public Domain"
                                },
                                {
                                    "value": "ODC PDDL",
                                    "label": "Public Domain Dedication and Licence"
                                },
                                {
                                    "value": "C",
                                    "label": "Copyright"
                                }
                            ]
                        },
                        {
                            "name": "licenseVersion",
                            "type": "select",
                            "label": "License Version",
                            "options": [
                                {
                                    "value": "4.0",
                                    "label": "4.0 International"
                                },
                                {
                                    "value": "3.0",
                                    "label": "3.0 Unported"
                                },
                                {
                                    "value": "2.5",
                                    "label": "2.5 Generic"
                                },
                                {
                                    "value": "2.0",
                                    "label": "2.0 Generic"
                                },
                                {
                                    "value": "1.0",
                                    "label": "1.0 Generic"
                                }
                            ],
                            "optional": true
                        },
                        {
                            "name": "yearFrom",
                            "type": "number",
                            "label": "Years (from)",
                            "placeholder": "1991",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "yearTo",
                            "type": "number",
                            "label": "Years (to)",
                            "placeholder": "1992",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "type": "text",
                            "label": "Source",
                            "placeholder": "https://",
                            "optional": true
                        },
                        {
                            "name": "authors",
                            "type": "list",
                            "field": {
                                "name": "author",
                                "type": "group",
                                "fields": [
                                    {
                                        "label": "Author's name",
                                        "name": "name",
                                        "optional": true,
                                        "type": "text"
                                    },
                                    {
                                        "name": "role",
                                        "type": "select",
                                        "label": "Author's role",
                                        "default": "Author",
                                        "options": [
                                            {
                                                "value": "Author",
                                                "label": "Author"
                                            },
                                            {
                                                "value": "Editor",
                                                "label": "Editor"
                                            },
                                            {
                                                "value": "Licensee",
                                                "label": "Licensee"
                                            },
                                            {
                                                "value": "Originator",
                                                "label": "Originator"
                                            }
                                        ]
                                    }
                                ]
                            }
                        },
                        {
                            "name": "licenseExtras",
                            "type": "text",
                            "widget": "textarea",
                            "label": "License Extras",
                            "optional": true,
                            "description": "Any additional information about the license"
                        },
                        {
                            "name": "changes",
                            "type": "list",
                            "field": {
                                "name": "change",
                                "type": "group",
                                "label": "Changelog",
                                "fields": [
                                    {
                                        "name": "date",
                                        "type": "text",
                                        "label": "Date",
                                        "optional": true
                                    },
                                    {
                                        "name": "author",
                                        "type": "text",
                                        "label": "Changed by",
                                        "optional": true
                                    },
                                    {
                                        "name": "log",
                                        "type": "text",
                                        "widget": "textarea",
                                        "label": "Description of change",
                                        "placeholder": "Photo cropped, text changed, etc.",
                                        "optional": true
                                    }
                                ]
                            }
                        },
                        {
                            "name": "authorComments",
                            "type": "text",
                            "widget": "textarea",
                            "label": "Author comments",
                            "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                            "optional": true
                        },
                        {
                            "name": "contentType",
                            "type": "text",
                            "widget": "none"
                        },
                        {
                            "name": "defaultLanguage",
                            "type": "text",
                            "widget": "none"
                        }
                    ],
                    "assets": {
                        "css": [
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                        ],
                        "js": [
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                        ]
                    },
                    "deleteMessage": "laravel-h5p.content.destoryed",
                    "apiVersion": {
                        "majorVersion": 1,
                        "minorVersion": 24
                    }
                },
                "loadedJs": [],
                "loadedCss": [],
                "core": {
                    "styles": [
                        "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
                    ],
                    "scripts": [
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                        "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
                    ]
                },
                "contents": {
                    "cid-59": {
                        "library": "H5P.InteractiveVideo 1.21",
                        "jsonContent": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                        "fullScreen": 1,
                        "exportUrl": "https://www.currikistudio.org/api/h5p/export/59",
                        "embedCode": "<iframe src=\"https://www.currikistudio.org/h5p/embed/59\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                        "resizeCode": "<script src=\"https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                        "url": "https://www.currikistudio.org/api/h5p/embed/59",
                        "title": "Science of Golf: Why Balls Have Dimples",
                        "displayOptions": {
                            "frame": true,
                            "export": true,
                            "embed": true,
                            "copyright": false,
                            "icon": true,
                            "copy": false
                        },
                        "contentUserData": [
                            {
                                "state": "{}"
                            }
                        ],
                        "scripts": [
                            "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/question.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/explainer.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/score-points.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SoundJS-1.0/soundjs-0.6.2.min.js?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/stop-watch.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/sound-effects.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/xapi-event-builder.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/result-slide.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/solution-view.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice-alternative.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice-set.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/stop-watch.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/xapi-event-builder.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/summary.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNDrop-1.1/drag-n-drop.js?ver=1.1.5",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.js?ver=1.2.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/context-menu.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/dialog.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-element.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-form-manager.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/flowplayer-1.0/scripts/flowplayer-3.2.12.min.js?ver=1.0.5",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/youtube.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/panopto.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/html5.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/flash.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/video.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.js?ver=1.10.19",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.js?ver=1.21.9"
                        ],
                        "styles": [
                            "https://www.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/question.css?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/explainer.css?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/styles/single-choice-set.css?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/css/summary.css?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.css?ver=1.2.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/dialog.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/context-menu.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar-form-manager.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/styles/video.css?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.css?ver=1.10.19",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.css?ver=1.21.9"
                        ]
                    }
                }
            },
            "user": {
                "id": 1,
                "name": "John Doe",
                "email": "john.doe@currikistudio.org"
            },
            "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-59\" class=\"h5p-iframe\" data-content-id=\"59\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
        },
        "playlist": {
            "id": 1,
            "title": "The Engineering & Design Behind Golf Balls",
            "project_id": 1,
            "order": 0,
            "created_at": null,
            "updated_at": null,
            "deleted_at": null,
            "elasticsearch": true,
            "is_public": true,
            "project": {
                "id": 1,
                "name": "The Science of Golf",
                "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
                "starter_project": false,
                "created_at": "2020-04-30T20:03:12.000000Z",
                "updated_at": "2020-09-17T05:44:49.000000Z",
                "deleted_at": null,
                "elasticsearch": false,
                "shared": true,
                "is_public": true
            }
        },
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": true,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-09-17T05:44:49.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/activities/{activity_id}/h5p

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

Get H5P Resource Settings

Get H5P Resource Settings for a activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/h5p-resource-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/h5p-resource-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/h5p-resource-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Activity doesn't belong to this user."
    ]
}
 

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/activities/{activity_id}/h5p-resource-settings

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

Get H5P Resource Settings (Open)

Get H5P Resource Settings for a activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/h5p-resource-settings-open" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/h5p-resource-settings-open"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/h5p-resource-settings-open',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/activities/{activity_id}/h5p-resource-settings-open

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

Get Activities

Get a list of activities

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/186/activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/186/activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activities": [
        {
            "id": 1,
            "playlist_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "type": "h5p",
            "content": "",
            "shared": false,
            "order": 2,
            "thumb_url": null,
            "subjects": [
                {
                    "id": 4,
                    "name": "English",
                    "order": 3,
                    "created_at": "2022-01-06T11:59:52.000000Z",
                    "updated_at": "2022-01-06T12:15:10.000000Z"
                },
                {
                    "id": 1,
                    "name": "Math",
                    "order": 1,
                    "created_at": "2022-01-06T11:41:46.000000Z",
                    "updated_at": "2022-01-06T11:41:46.000000Z"
                }
            ],
            "education_levels": [
                {
                    "id": 1,
                    "name": "Grade A",
                    "order": 5,
                    "created_at": "2022-01-07T13:51:38.000000Z",
                    "updated_at": "2022-01-07T14:07:17.000000Z"
                },
                {
                    "id": 1,
                    "name": "Grade B",
                    "order": 6,
                    "created_at": "2022-01-07T13:51:38.000000Z",
                    "updated_at": "2022-01-07T14:07:17.000000Z"
                }
            ],
            "author_tags": [
                {
                    "id": 1,
                    "name": "Audio",
                    "order": 1,
                    "created_at": "2022-01-10T13:09:36.000000Z",
                    "updated_at": "2022-01-10T13:09:36.000000Z"
                },
                {
                    "id": 2,
                    "name": "Video",
                    "order": 2,
                    "created_at": "2022-01-10T13:09:44.000000Z",
                    "updated_at": "2022-01-10T13:20:57.000000Z"
                }
            ],
            "gcr_activity_visibility": true,
            "h5p_content": {
                "id": 59,
                "user_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "library_id": 40,
                "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "slug": "science-of-golf-why-balls-have-dimples",
                "embed_type": "div",
                "disable": 9,
                "content_type": null,
                "authors": null,
                "source": null,
                "year_from": null,
                "year_to": null,
                "license": "U",
                "license_version": null,
                "license_extras": null,
                "author_comments": null,
                "changes": null,
                "default_language": null,
                "library": {
                    "id": 40,
                    "created_at": null,
                    "updated_at": null,
                    "name": "H5P.InteractiveVideo",
                    "title": "Interactive Video",
                    "major_version": 1,
                    "minor_version": 21,
                    "patch_version": 9,
                    "runnable": 1,
                    "restricted": 0,
                    "fullscreen": 1,
                    "embed_types": "iframe",
                    "preloaded_js": "dist/h5p-interactive-video.js",
                    "preloaded_css": "dist/h5p-interactive-video.css",
                    "drop_library_css": "",
                    "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                    "tutorial_url": "",
                    "has_icon": 1
                },
                "created_at": "2020-09-30T20:24:58.000000Z",
                "updated_at": "2020-09-30T20:24:58.000000Z"
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        {
            "id": 2,
            "playlist_id": 2,
            "title": "Science of Golf: Why Balls Have Dimples",
            "type": "h5p",
            "content": "",
            "shared": false,
            "order": 2,
            "thumb_url": null,
            "subject_id": null,
            "education_level_id": null,
            "h5p_content": {
                "id": 59,
                "user_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "library_id": 40,
                "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "slug": "science-of-golf-why-balls-have-dimples",
                "embed_type": "div",
                "disable": 9,
                "content_type": null,
                "authors": null,
                "source": null,
                "year_from": null,
                "year_to": null,
                "license": "U",
                "license_version": null,
                "license_extras": null,
                "author_comments": null,
                "changes": null,
                "default_language": null,
                "library": {
                    "id": 40,
                    "created_at": null,
                    "updated_at": null,
                    "name": "H5P.InteractiveVideo",
                    "title": "Interactive Video",
                    "major_version": 1,
                    "minor_version": 21,
                    "patch_version": 9,
                    "runnable": 1,
                    "restricted": 0,
                    "fullscreen": 1,
                    "embed_types": "iframe",
                    "preloaded_js": "dist/h5p-interactive-video.js",
                    "preloaded_css": "dist/h5p-interactive-video.css",
                    "drop_library_css": "",
                    "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                    "tutorial_url": "",
                    "has_icon": 1
                },
                "created_at": "2020-09-30T20:24:58.000000Z",
                "updated_at": "2020-09-30T20:24:58.000000Z"
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        }
    ]
}
 

Request      

GET api/v1/playlists/{playlist_id}/activities

URL Parameters

playlist_id  integer  

The ID of the playlist.

playlist  string  

The Id of a playlist

Create Activity

Create a new activity.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/playlists/186/activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"type\": \"h5p\",
    \"content\": \"eos\",
    \"description\": \"oxlemkiwzltdlkyfausozhgauksulxvusizdelqpombhxoclcwclddivrbcbyjayyhkbsvrxwqttlhrgwgnxjkcplcqllhkpngwoaszarklbltbjbxdnzmrgbxaykdtwafhcfloszagaglptgqduygfinfyeykacllqvakxsandxjjmhsshdxoybcdvhmjkiegsylceoprzxtmbbawelvpbgrbbvhdufbbptdwwcciuezwhmiepdmibixxslvtvlaqsaisdwvuaklhqsf\",
    \"order\": 2,
    \"shared\": true,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"source_type\": \"provident\",
    \"source_url\": \"eveniet\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "type": "h5p",
    "content": "eos",
    "description": "oxlemkiwzltdlkyfausozhgauksulxvusizdelqpombhxoclcwclddivrbcbyjayyhkbsvrxwqttlhrgwgnxjkcplcqllhkpngwoaszarklbltbjbxdnzmrgbxaykdtwafhcfloszagaglptgqduygfinfyeykacllqvakxsandxjjmhsshdxoybcdvhmjkiegsylceoprzxtmbbawelvpbgrbbvhdufbbptdwwcciuezwhmiepdmibixxslvtvlaqsaisdwvuaklhqsf",
    "order": 2,
    "shared": true,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "source_type": "provident",
    "source_url": "eveniet"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/playlists/186/activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'type' => 'h5p',
            'content' => 'eos',
            'description' => 'oxlemkiwzltdlkyfausozhgauksulxvusizdelqpombhxoclcwclddivrbcbyjayyhkbsvrxwqttlhrgwgnxjkcplcqllhkpngwoaszarklbltbjbxdnzmrgbxaykdtwafhcfloszagaglptgqduygfinfyeykacllqvakxsandxjjmhsshdxoybcdvhmjkiegsylceoprzxtmbbawelvpbgrbbvhdufbbptdwwcciuezwhmiepdmibixxslvtvlaqsaisdwvuaklhqsf',
            'order' => 2,
            'shared' => true,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'source_type' => 'provident',
            'source_url' => 'eveniet',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create activity. Please try again later."
    ]
}
 

Example response (201):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

POST api/v1/playlists/{playlist_id}/activities

URL Parameters

playlist_id  integer  

The ID of the playlist.

playlist  string  

The Id of a playlist

Body Parameters

title  string  

The title of a activity

type  string  

The type of a activity

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

order  integer optional  

The order number of a activity

shared  boolean optional  

h5p_content_id  integer optional  

The Id of H5p content

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

source_type  string optional  

source_url  string optional  

Get Activity

Get the specified activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/186/activities/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/186/activities/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid playlist or activity id."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/playlists/{playlist_id}/activities/{id}

URL Parameters

playlist_id  integer  

The ID of the playlist.

id  integer  

The ID of the activity.

playlist  string  

The Id of a playlist

activity  string  

The Id of a activity

Update Activity

Update the specified activity.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/playlists/186/activities/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"type\": \"h5p\",
    \"content\": \"est\",
    \"description\": \"khtoexukeacqrqezgbogpeypywnvrotzrcjyrrrbjlxxmhqpffhwfnljvcvdkswnxdbwdhkhqtdkgzwhxgyvorvpfcyspukglsolxqwiieixnbxpwqcmolacljzhboniwkvuqdgfactfjhtcikrxotwhgionrknvgllzihnepaekpqtukqtvqjnixkpffqtrhodidsgilgbgzikpcpjxczcbfbjegsggmjscjljcyiqerqfxdmubqjjifhjzixayfxnfvngxzkjbzphbcypcushqczgrctxncbwjqezlymcrcjuqdkgxanxxsmkpzbmcfflinjjfcoygnddjdszqehlafqwuvyfgpwhoydivjmbrhkqdplicapuwwuxeskxorptvpgcdvxwfoaqceirldbulfgbqgnztwcgxxobnd\",
    \"data\": \"dolorem\",
    \"order\": 2,
    \"shared\": false,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"source_type\": \"qui\",
    \"source_url\": \"sint\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "type": "h5p",
    "content": "est",
    "description": "khtoexukeacqrqezgbogpeypywnvrotzrcjyrrrbjlxxmhqpffhwfnljvcvdkswnxdbwdhkhqtdkgzwhxgyvorvpfcyspukglsolxqwiieixnbxpwqcmolacljzhboniwkvuqdgfactfjhtcikrxotwhgionrknvgllzihnepaekpqtukqtvqjnixkpffqtrhodidsgilgbgzikpcpjxczcbfbjegsggmjscjljcyiqerqfxdmubqjjifhjzixayfxnfvngxzkjbzphbcypcushqczgrctxncbwjqezlymcrcjuqdkgxanxxsmkpzbmcfflinjjfcoygnddjdszqehlafqwuvyfgpwhoydivjmbrhkqdplicapuwwuxeskxorptvpgcdvxwfoaqceirldbulfgbqgnztwcgxxobnd",
    "data": "dolorem",
    "order": 2,
    "shared": false,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "source_type": "qui",
    "source_url": "sint"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/playlists/186/activities/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'type' => 'h5p',
            'content' => 'est',
            'description' => 'khtoexukeacqrqezgbogpeypywnvrotzrcjyrrrbjlxxmhqpffhwfnljvcvdkswnxdbwdhkhqtdkgzwhxgyvorvpfcyspukglsolxqwiieixnbxpwqcmolacljzhboniwkvuqdgfactfjhtcikrxotwhgionrknvgllzihnepaekpqtukqtvqjnixkpffqtrhodidsgilgbgzikpcpjxczcbfbjegsggmjscjljcyiqerqfxdmubqjjifhjzixayfxnfvngxzkjbzphbcypcushqczgrctxncbwjqezlymcrcjuqdkgxanxxsmkpzbmcfflinjjfcoygnddjdszqehlafqwuvyfgpwhoydivjmbrhkqdplicapuwwuxeskxorptvpgcdvxwfoaqceirldbulfgbqgnztwcgxxobnd',
            'data' => 'dolorem',
            'order' => 2,
            'shared' => false,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'source_type' => 'qui',
            'source_url' => 'sint',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid playlist or activity id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update activity."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

PUT api/v1/playlists/{playlist_id}/activities/{id}

PATCH api/v1/playlists/{playlist_id}/activities/{id}

URL Parameters

playlist_id  integer  

The ID of the playlist.

id  integer  

The ID of the activity.

playlist  string  

The Id of a playlist

activity  string  

The Id of a activity

Body Parameters

title  string  

The title of a activity

type  string  

The type of a activity

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

data  string  

order  integer optional  

The order number of a activity

shared  boolean optional  

The status of share of a activity

h5p_content_id  integer optional  

The Id of H5p content

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

source_type  string optional  

source_url  string optional  

Remove Activity

Remove the specified activity.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/playlists/186/activities/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/activities/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/playlists/186/activities/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete activity."
    ]
}
 

Request      

DELETE api/v1/playlists/{playlist_id}/activities/{id}

URL Parameters

playlist_id  integer  

The ID of the playlist.

id  integer  

The ID of the activity.

playlist  string  

The Id of a playlist

activity  string  

The Id of a activity

Get Stand Alone Activities

Get a list of stand alone activities

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activities": [
        {
            "id": 1,
            "playlist_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "type": "h5p",
            "content": "",
            "shared": false,
            "order": 2,
            "thumb_url": null,
            "subjects": [
                {
                    "id": 4,
                    "name": "English",
                    "order": 3,
                    "created_at": "2022-01-06T11:59:52.000000Z",
                    "updated_at": "2022-01-06T12:15:10.000000Z"
                },
                {
                    "id": 1,
                    "name": "Math",
                    "order": 1,
                    "created_at": "2022-01-06T11:41:46.000000Z",
                    "updated_at": "2022-01-06T11:41:46.000000Z"
                }
            ],
            "education_levels": [
                {
                    "id": 1,
                    "name": "Grade A",
                    "order": 5,
                    "created_at": "2022-01-07T13:51:38.000000Z",
                    "updated_at": "2022-01-07T14:07:17.000000Z"
                },
                {
                    "id": 1,
                    "name": "Grade B",
                    "order": 6,
                    "created_at": "2022-01-07T13:51:38.000000Z",
                    "updated_at": "2022-01-07T14:07:17.000000Z"
                }
            ],
            "author_tags": [
                {
                    "id": 1,
                    "name": "Audio",
                    "order": 1,
                    "created_at": "2022-01-10T13:09:36.000000Z",
                    "updated_at": "2022-01-10T13:09:36.000000Z"
                },
                {
                    "id": 2,
                    "name": "Video",
                    "order": 2,
                    "created_at": "2022-01-10T13:09:44.000000Z",
                    "updated_at": "2022-01-10T13:20:57.000000Z"
                }
            ],
            "gcr_activity_visibility": true,
            "h5p_content": {
                "id": 59,
                "user_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "library_id": 40,
                "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "slug": "science-of-golf-why-balls-have-dimples",
                "embed_type": "div",
                "disable": 9,
                "content_type": null,
                "authors": null,
                "source": null,
                "year_from": null,
                "year_to": null,
                "license": "U",
                "license_version": null,
                "license_extras": null,
                "author_comments": null,
                "changes": null,
                "default_language": null,
                "library": {
                    "id": 40,
                    "created_at": null,
                    "updated_at": null,
                    "name": "H5P.InteractiveVideo",
                    "title": "Interactive Video",
                    "major_version": 1,
                    "minor_version": 21,
                    "patch_version": 9,
                    "runnable": 1,
                    "restricted": 0,
                    "fullscreen": 1,
                    "embed_types": "iframe",
                    "preloaded_js": "dist/h5p-interactive-video.js",
                    "preloaded_css": "dist/h5p-interactive-video.css",
                    "drop_library_css": "",
                    "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                    "tutorial_url": "",
                    "has_icon": 1
                },
                "created_at": "2020-09-30T20:24:58.000000Z",
                "updated_at": "2020-09-30T20:24:58.000000Z"
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        {
            "id": 2,
            "playlist_id": 2,
            "title": "Science of Golf: Why Balls Have Dimples",
            "type": "h5p",
            "content": "",
            "shared": false,
            "order": 2,
            "thumb_url": null,
            "subject_id": null,
            "education_level_id": null,
            "h5p_content": {
                "id": 59,
                "user_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "library_id": 40,
                "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "slug": "science-of-golf-why-balls-have-dimples",
                "embed_type": "div",
                "disable": 9,
                "content_type": null,
                "authors": null,
                "source": null,
                "year_from": null,
                "year_to": null,
                "license": "U",
                "license_version": null,
                "license_extras": null,
                "author_comments": null,
                "changes": null,
                "default_language": null,
                "library": {
                    "id": 40,
                    "created_at": null,
                    "updated_at": null,
                    "name": "H5P.InteractiveVideo",
                    "title": "Interactive Video",
                    "major_version": 1,
                    "minor_version": 21,
                    "patch_version": 9,
                    "runnable": 1,
                    "restricted": 0,
                    "fullscreen": 1,
                    "embed_types": "iframe",
                    "preloaded_js": "dist/h5p-interactive-video.js",
                    "preloaded_css": "dist/h5p-interactive-video.css",
                    "drop_library_css": "",
                    "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                    "tutorial_url": "",
                    "has_icon": 1
                },
                "created_at": "2020-09-30T20:24:58.000000Z",
                "updated_at": "2020-09-30T20:24:58.000000Z"
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/stand-alone-activity

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Create Activity

Create a new activity.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"content\": \"rerum\",
    \"description\": \"zsxuyuzjxirqqrpmaobqlzbxscucvpkewrpnwwtmygepubypcijlsqlnnfvurymaffbnydeopefxxteyajiqgirpjzurwrveuhgioylbaheibpivjdihgdnoyiggjwpelylitlukifuzervbimlbyr\",
    \"order\": 2,
    \"shared\": false,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"organization_id\": 6,
    \"source_type\": \"voluptates\",
    \"source_url\": \"sed\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "content": "rerum",
    "description": "zsxuyuzjxirqqrpmaobqlzbxscucvpkewrpnwwtmygepubypcijlsqlnnfvurymaffbnydeopefxxteyajiqgirpjzurwrveuhgioylbaheibpivjdihgdnoyiggjwpelylitlukifuzervbimlbyr",
    "order": 2,
    "shared": false,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "organization_id": 6,
    "source_type": "voluptates",
    "source_url": "sed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'content' => 'rerum',
            'description' => 'zsxuyuzjxirqqrpmaobqlzbxscucvpkewrpnwwtmygepubypcijlsqlnnfvurymaffbnydeopefxxteyajiqgirpjzurwrveuhgioylbaheibpivjdihgdnoyiggjwpelylitlukifuzervbimlbyr',
            'order' => 2,
            'shared' => false,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'organization_id' => 6,
            'source_type' => 'voluptates',
            'source_url' => 'sed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create activity. Please try again later."
    ]
}
 

Example response (201):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/stand-alone-activity

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

Organization  string optional  

suborganization required The Id of a organization

Body Parameters

title  string  

The title of a activity

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

order  integer optional  

The order number of a activity

shared  boolean optional  

The status of share of a activity

h5p_content_id  integer optional  

The Id of H5p content

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

organization_id  integer  

source_type  string optional  

source_url  string optional  

Get Stand Alone Activity

Get the specified stand alone activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid activity id."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the stand alone activity.

suborganization  string  

The Id of a organization

standAloneActivity  string  

The Id of a activity

Update Activity

Update the specified activity.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"type\": \"nxpxfouggqqgjidrxdnosmzcpuwnmbjjzrhpfcsncptnazxmasjsfdxyffldvysjpstjtuooyctvowfrgnxgoqahtexnlilepcszdbdruyljybrnzzsvznenkjdhtbssgqlnwyqtvqkdt\",
    \"content\": \"cumque\",
    \"description\": \"rbsjtvwgedizbebkczubtpabhzzyldhllklnctillbnynynvhqcimbrftuwcxobcmcizryorhgnymrbwgdnlynrjdxhytkquirmedyhdycjjpwpfhmjuvsxlnxoopclomhqkvavesucsqkbbiqzcihbcxpmrciwlwhvnelietiqakzcifjcxkwwoncoimdvvjpejbdnehklaobxskcgyhpiwdocxtzsocierhebunnzvnhchwmkdoptocvddjnkfrplwlhfrmfnamngyknhonmgfxmpqufnbxpyofnmffxykbtnvklznaoqezbjexdihvbarthxagzyadolcdwdkmoqaohvqojhispdmmopgiqqqeigktjdglgtrskqvhfnjodjnqwufyftrbjxutxoakidxmmirmtixsdgzmzoouchpluhrdnybhowsmgyeewnrygc\",
    \"data\": \"tempore\",
    \"order\": 2,
    \"shared\": false,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"source_type\": \"iusto\",
    \"source_url\": \"sapiente\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "type": "nxpxfouggqqgjidrxdnosmzcpuwnmbjjzrhpfcsncptnazxmasjsfdxyffldvysjpstjtuooyctvowfrgnxgoqahtexnlilepcszdbdruyljybrnzzsvznenkjdhtbssgqlnwyqtvqkdt",
    "content": "cumque",
    "description": "rbsjtvwgedizbebkczubtpabhzzyldhllklnctillbnynynvhqcimbrftuwcxobcmcizryorhgnymrbwgdnlynrjdxhytkquirmedyhdycjjpwpfhmjuvsxlnxoopclomhqkvavesucsqkbbiqzcihbcxpmrciwlwhvnelietiqakzcifjcxkwwoncoimdvvjpejbdnehklaobxskcgyhpiwdocxtzsocierhebunnzvnhchwmkdoptocvddjnkfrplwlhfrmfnamngyknhonmgfxmpqufnbxpyofnmffxykbtnvklznaoqezbjexdihvbarthxagzyadolcdwdkmoqaohvqojhispdmmopgiqqqeigktjdglgtrskqvhfnjodjnqwufyftrbjxutxoakidxmmirmtixsdgzmzoouchpluhrdnybhowsmgyeewnrygc",
    "data": "tempore",
    "order": 2,
    "shared": false,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "source_type": "iusto",
    "source_url": "sapiente"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'type' => 'nxpxfouggqqgjidrxdnosmzcpuwnmbjjzrhpfcsncptnazxmasjsfdxyffldvysjpstjtuooyctvowfrgnxgoqahtexnlilepcszdbdruyljybrnzzsvznenkjdhtbssgqlnwyqtvqkdt',
            'content' => 'cumque',
            'description' => 'rbsjtvwgedizbebkczubtpabhzzyldhllklnctillbnynynvhqcimbrftuwcxobcmcizryorhgnymrbwgdnlynrjdxhytkquirmedyhdycjjpwpfhmjuvsxlnxoopclomhqkvavesucsqkbbiqzcihbcxpmrciwlwhvnelietiqakzcifjcxkwwoncoimdvvjpejbdnehklaobxskcgyhpiwdocxtzsocierhebunnzvnhchwmkdoptocvddjnkfrplwlhfrmfnamngyknhonmgfxmpqufnbxpyofnmffxykbtnvklznaoqezbjexdihvbarthxagzyadolcdwdkmoqaohvqojhispdmmopgiqqqeigktjdglgtrskqvhfnjodjnqwufyftrbjxutxoakidxmmirmtixsdgzmzoouchpluhrdnybhowsmgyeewnrygc',
            'data' => 'tempore',
            'order' => 2,
            'shared' => false,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'source_type' => 'iusto',
            'source_url' => 'sapiente',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid activity id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update activity."
    ]
}
 

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "gcr_activity_visibility": true,
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{id}

PATCH api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the stand alone activity.

suborganization  string  

The Id of a suborganization

activity  string  

The Id of a activity

Body Parameters

title  string  

The title of a activity

type  string  

Must not be greater than 255 characters.

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

data  string  

order  integer optional  

The order number of a activity

shared  boolean optional  

The status of share of a activity

h5p_content_id  integer optional  

The Id of H5p content

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

source_type  string optional  

source_url  string optional  

Remove Standalone Activity

Remove the specified activity.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete activity."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the stand alone activity.

Organization  string  

The Id of an organization

standAloneActivity  string  

The Id of an activity

Get Activity Detail

Get the specified activity in detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/detail" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/detail"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/detail',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activity": {
        "id": 1,
        "playlist": {
            "id": 1,
            "title": "The Engineering & Design Behind Golf Balls",
            "is_public": true,
            "order": 0,
            "project_id": 1,
            "project": {
                "id": 1,
                "name": "The Science of Golf",
                "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
                "starter_project": false,
                "shared": false,
                "is_public": true,
                "users": [
                    {
                        "id": 1,
                        "email": "john.doe@currikistudio.org",
                        "first_name": "John",
                        "last_name": "Doe",
                        "role": "owner"
                    }
                ],
                "created_at": "2020-04-30T20:03:12.000000Z",
                "updated_at": "2020-07-11T12:51:07.000000Z"
            },
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subjects": [
            {
                "id": 4,
                "name": "English",
                "order": 3,
                "created_at": "2022-01-06T11:59:52.000000Z",
                "updated_at": "2022-01-06T12:15:10.000000Z"
            },
            {
                "id": 1,
                "name": "Math",
                "order": 1,
                "created_at": "2022-01-06T11:41:46.000000Z",
                "updated_at": "2022-01-06T11:41:46.000000Z"
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Grade A",
                "order": 5,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            },
            {
                "id": 1,
                "name": "Grade B",
                "order": 6,
                "created_at": "2022-01-07T13:51:38.000000Z",
                "updated_at": "2022-01-07T14:07:17.000000Z"
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Audio",
                "order": 1,
                "created_at": "2022-01-10T13:09:36.000000Z",
                "updated_at": "2022-01-10T13:09:36.000000Z"
            },
            {
                "id": 2,
                "name": "Video",
                "order": 2,
                "created_at": "2022-01-10T13:09:44.000000Z",
                "updated_at": "2022-01-10T13:20:57.000000Z"
            }
        ],
        "h5p": "{\"params\":{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}},\"metadata\":{\"title\":\"Science of Golf: Why Balls Have Dimples\",\"license\":\"U\"}}",
        "h5p_content": {
            "id": 59,
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 40,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.InteractiveVideo",
                "title": "Interactive Video",
                "major_version": 1,
                "minor_version": 21,
                "patch_version": 9,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-interactive-video.js",
                "preloaded_css": "dist/h5p-interactive-video.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"interactiveVideo\",\n    \"type\": \"group\",\n    \"widget\": \"wizard\",\n    \"label\": \"Interactive Video Editor\",\n    \"importance\": \"high\",\n    \"fields\": [\n      {\n        \"name\": \"video\",\n        \"type\": \"group\",\n        \"label\": \"Upload/embed video\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"files\",\n            \"type\": \"video\",\n            \"label\": \"Add a video\",\n            \"importance\": \"high\",\n            \"description\": \"Click below to add a video you wish to use in your interactive video. You can add a video link or upload video files. It is possible to add several versions of the video with different qualities. To ensure maximum support in browsers at least add a version in webm and mp4 formats.\",\n            \"extraAttributes\": [\n              \"metadata\"\n            ],\n            \"enableCustomQualityLabel\": true\n          },\n          {\n            \"name\": \"startScreenOptions\",\n            \"type\": \"group\",\n            \"label\": \"Start screen options (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"title\",\n                \"type\": \"text\",\n                \"label\": \"The title of this interactive video\",\n                \"importance\": \"low\",\n                \"maxLength\": 60,\n                \"default\": \"Interactive Video\",\n                \"description\": \"Used in summaries, statistics etc.\"\n              },\n              {\n                \"name\": \"hideStartTitle\",\n                \"type\": \"boolean\",\n                \"label\": \"Hide title on video start screen\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"default\": false\n              },\n              {\n                \"name\": \"shortStartDescription\",\n                \"type\": \"text\",\n                \"label\": \"Short description (Optional)\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"maxLength\": 120,\n                \"description\": \"Optional. Display a short description text on the video start screen. Does not work for YouTube videos.\"\n              },\n              {\n                \"name\": \"poster\",\n                \"type\": \"image\",\n                \"label\": \"Poster image\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"description\": \"Image displayed before the user launches the video. Does not work for YouTube Videos.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"textTracks\",\n            \"type\": \"group\",\n            \"label\": \"Text tracks (unsupported for YouTube videos)\",\n            \"importance\": \"low\",\n            \"fields\": [\n              {\n                \"name\": \"videoTrack\",\n                \"type\": \"list\",\n                \"label\": \"Available text tracks\",\n                \"importance\": \"low\",\n                \"optional\": true,\n                \"entity\": \"Track\",\n                \"min\": 0,\n                \"defaultNum\": 1,\n                \"field\": {\n                  \"name\": \"track\",\n                  \"type\": \"group\",\n                  \"label\": \"Track\",\n                  \"importance\": \"low\",\n                  \"expanded\": false,\n                  \"fields\": [\n                    {\n                      \"name\": \"label\",\n                      \"type\": \"text\",\n                      \"label\": \"Track label\",\n                      \"description\": \"Used if you offer multiple tracks and the user has to choose a track. For instance 'Spanish subtitles' could be the label of a Spanish subtitle track.\",\n                      \"importance\": \"low\",\n                      \"default\": \"Subtitles\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"kind\",\n                      \"type\": \"select\",\n                      \"label\": \"Type of text track\",\n                      \"importance\": \"low\",\n                      \"default\": \"subtitles\",\n                      \"options\": [\n                        {\n                          \"value\": \"subtitles\",\n                          \"label\": \"Subtitles\"\n                        },\n                        {\n                          \"value\": \"captions\",\n                          \"label\": \"Captions\"\n                        },\n                        {\n                          \"value\": \"descriptions\",\n                          \"label\": \"Descriptions\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"srcLang\",\n                      \"type\": \"text\",\n                      \"label\": \"Source language, must be defined for subtitles\",\n                      \"importance\": \"low\",\n                      \"default\": \"en\",\n                      \"description\": \"Must be a valid BCP 47 language tag. If 'Subtitles' is the type of text track selected, the source language of the track must be defined.\"\n                    },\n                    {\n                      \"name\": \"track\",\n                      \"type\": \"file\",\n                      \"label\": \"Track source (WebVTT file)\",\n                      \"importance\": \"low\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"name\": \"defaultTrackLabel\",\n                \"type\": \"text\",\n                \"label\": \"Default text track\",\n                \"description\": \"If left empty or not matching any of the text tracks the first text track will be used as the default.\",\n                \"importance\": \"low\",\n                \"optional\": true\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"assets\",\n        \"type\": \"group\",\n        \"label\": \"Add interactions\",\n        \"importance\": \"high\",\n        \"widget\": \"interactiveVideo\",\n        \"video\": \"video/files\",\n        \"poster\": \"video/startScreenOptions/poster\",\n        \"fields\": [\n          {\n            \"name\": \"interactions\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"interaction\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"duration\",\n                  \"type\": \"group\",\n                  \"widget\": \"duration\",\n                  \"label\": \"Display time\",\n                  \"importance\": \"low\",\n                  \"fields\": [\n                    {\n                      \"name\": \"from\",\n                      \"type\": \"number\"\n                    },\n                    {\n                      \"name\": \"to\",\n                      \"type\": \"number\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"pause\",\n                  \"label\": \"Pause video\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"name\": \"displayType\",\n                  \"label\": \"Display as\",\n                  \"importance\": \"low\",\n                  \"description\": \"<b>Button</b> is a collapsed interaction the user must press to open. <b>Poster</b> is an expanded interaction displayed directly on top of the video\",\n                  \"type\": \"select\",\n                  \"widget\": \"imageRadioButtonGroup\",\n                  \"options\": [\n                    {\n                      \"value\": \"button\",\n                      \"label\": \"Button\"\n                    },\n                    {\n                      \"value\": \"poster\",\n                      \"label\": \"Poster\"\n                    }\n                  ],\n                  \"default\": \"button\"\n                },\n                {\n                  \"name\": \"buttonOnMobile\",\n                  \"label\": \"Turn into button on small screens\",\n                  \"importance\": \"low\",\n                  \"type\": \"boolean\",\n                  \"default\": false\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\",\n                  \"widget\": \"html\",\n                  \"label\": \"Label\",\n                  \"importance\": \"low\",\n                  \"description\": \"Label displayed next to interaction icon.\",\n                  \"optional\": true,\n                  \"enterMode\": \"p\",\n                  \"tags\": [\n                    \"p\"\n                  ]\n                },\n                {\n                  \"name\": \"x\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"y\",\n                  \"type\": \"number\",\n                  \"importance\": \"low\",\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"width\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"height\",\n                  \"type\": \"number\",\n                  \"widget\": \"none\",\n                  \"importance\": \"low\",\n                  \"optional\": true\n                },\n                {\n                  \"name\": \"libraryTitle\",\n                  \"type\": \"text\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"widget\": \"none\"\n                },\n                {\n                  \"name\": \"action\",\n                  \"type\": \"library\",\n                  \"importance\": \"low\",\n                  \"options\": [\n                    \"H5P.Nil 1.0\",\n                    \"H5P.Text 1.1\",\n                    \"H5P.Table 1.1\",\n                    \"H5P.Link 1.3\",\n                    \"H5P.Image 1.1\",\n                    \"H5P.Summary 1.10\",\n                    \"H5P.SingleChoiceSet 1.11\",\n                    \"H5P.MultiChoice 1.14\",\n                    \"H5P.TrueFalse 1.6\",\n                    \"H5P.Blanks 1.12\",\n                    \"H5P.DragQuestion 1.13\",\n                    \"H5P.MarkTheWords 1.9\",\n                    \"H5P.DragText 1.8\",\n                    \"H5P.GoToQuestion 1.3\",\n                    \"H5P.IVHotspot 1.2\",\n                    \"H5P.Questionnaire 1.2\",\n                    \"H5P.FreeTextQuestion 1.0\"\n                  ]\n                },\n                {\n                  \"name\": \"adaptivity\",\n                  \"type\": \"group\",\n                  \"label\": \"Adaptivity\",\n                  \"importance\": \"low\",\n                  \"optional\": true,\n                  \"fields\": [\n                    {\n                      \"name\": \"correct\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on all correct\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"wrong\",\n                      \"type\": \"group\",\n                      \"label\": \"Action on wrong\",\n                      \"fields\": [\n                        {\n                          \"name\": \"seekTo\",\n                          \"type\": \"number\",\n                          \"widget\": \"timecode\",\n                          \"label\": \"Seek to\",\n                          \"description\": \"Enter timecode in the format M:SS\"\n                        },\n                        {\n                          \"name\": \"allowOptOut\",\n                          \"type\": \"boolean\",\n                          \"label\": \"Allow the user to opt out and continue\"\n                        },\n                        {\n                          \"name\": \"message\",\n                          \"type\": \"text\",\n                          \"widget\": \"html\",\n                          \"enterMode\": \"p\",\n                          \"tags\": [\n                            \"strong\",\n                            \"em\",\n                            \"del\",\n                            \"a\",\n                            \"code\"\n                          ],\n                          \"label\": \"Message\"\n                        },\n                        {\n                          \"name\": \"seekLabel\",\n                          \"type\": \"text\",\n                          \"label\": \"Label for seek button\"\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"requireCompletion\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Require full score for task before proceeding\",\n                      \"description\": \"For best functionality this option should be used in conjunction with the \\\"Prevent skipping forward in a video\\\" option of Interactive Video.\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"visuals\",\n                  \"label\": \"Visuals\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"backgroundColor\",\n                      \"type\": \"text\",\n                      \"label\": \"Background color\",\n                      \"widget\": \"colorSelector\",\n                      \"default\": \"rgb(255, 255, 255)\",\n                      \"spectrum\": {\n                        \"showInput\": true,\n                        \"showAlpha\": true,\n                        \"preferredFormat\": \"rgb\",\n                        \"showPalette\": true,\n                        \"palette\": [\n                          [\n                            \"rgba(0, 0, 0, 0)\"\n                          ],\n                          [\n                            \"rgb(67, 67, 67)\",\n                            \"rgb(102, 102, 102)\",\n                            \"rgb(204, 204, 204)\",\n                            \"rgb(217, 217, 217)\",\n                            \"rgb(255, 255, 255)\"\n                          ],\n                          [\n                            \"rgb(152, 0, 0)\",\n                            \"rgb(255, 0, 0)\",\n                            \"rgb(255, 153, 0)\",\n                            \"rgb(255, 255, 0)\",\n                            \"rgb(0, 255, 0)\",\n                            \"rgb(0, 255, 255)\",\n                            \"rgb(74, 134, 232)\",\n                            \"rgb(0, 0, 255)\",\n                            \"rgb(153, 0, 255)\",\n                            \"rgb(255, 0, 255)\"\n                          ],\n                          [\n                            \"rgb(230, 184, 175)\",\n                            \"rgb(244, 204, 204)\",\n                            \"rgb(252, 229, 205)\",\n                            \"rgb(255, 242, 204)\",\n                            \"rgb(217, 234, 211)\",\n                            \"rgb(208, 224, 227)\",\n                            \"rgb(201, 218, 248)\",\n                            \"rgb(207, 226, 243)\",\n                            \"rgb(217, 210, 233)\",\n                            \"rgb(234, 209, 220)\",\n                            \"rgb(221, 126, 107)\",\n                            \"rgb(234, 153, 153)\",\n                            \"rgb(249, 203, 156)\",\n                            \"rgb(255, 229, 153)\",\n                            \"rgb(182, 215, 168)\",\n                            \"rgb(162, 196, 201)\",\n                            \"rgb(164, 194, 244)\",\n                            \"rgb(159, 197, 232)\",\n                            \"rgb(180, 167, 214)\",\n                            \"rgb(213, 166, 189)\",\n                            \"rgb(204, 65, 37)\",\n                            \"rgb(224, 102, 102)\",\n                            \"rgb(246, 178, 107)\",\n                            \"rgb(255, 217, 102)\",\n                            \"rgb(147, 196, 125)\",\n                            \"rgb(118, 165, 175)\",\n                            \"rgb(109, 158, 235)\",\n                            \"rgb(111, 168, 220)\",\n                            \"rgb(142, 124, 195)\",\n                            \"rgb(194, 123, 160)\",\n                            \"rgb(166, 28, 0)\",\n                            \"rgb(204, 0, 0)\",\n                            \"rgb(230, 145, 56)\",\n                            \"rgb(241, 194, 50)\",\n                            \"rgb(106, 168, 79)\",\n                            \"rgb(69, 129, 142)\",\n                            \"rgb(60, 120, 216)\",\n                            \"rgb(61, 133, 198)\",\n                            \"rgb(103, 78, 167)\",\n                            \"rgb(166, 77, 121)\",\n                            \"rgb(91, 15, 0)\",\n                            \"rgb(102, 0, 0)\",\n                            \"rgb(120, 63, 4)\",\n                            \"rgb(127, 96, 0)\",\n                            \"rgb(39, 78, 19)\",\n                            \"rgb(12, 52, 61)\",\n                            \"rgb(28, 69, 135)\",\n                            \"rgb(7, 55, 99)\",\n                            \"rgb(32, 18, 77)\",\n                            \"rgb(76, 17, 48)\"\n                          ]\n                        ]\n                      }\n                    },\n                    {\n                      \"name\": \"boxShadow\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Box shadow\",\n                      \"default\": true,\n                      \"description\": \"Adds a subtle shadow around the interaction. You might want to disable this for completely transparent interactions\"\n                    }\n                  ]\n                },\n                {\n                  \"name\": \"goto\",\n                  \"label\": \"Go to on click\",\n                  \"importance\": \"low\",\n                  \"type\": \"group\",\n                  \"fields\": [\n                    {\n                      \"name\": \"type\",\n                      \"label\": \"Type\",\n                      \"type\": \"select\",\n                      \"widget\": \"selectToggleFields\",\n                      \"options\": [\n                        {\n                          \"value\": \"timecode\",\n                          \"label\": \"Timecode\",\n                          \"hideFields\": [\n                            \"url\"\n                          ]\n                        },\n                        {\n                          \"value\": \"url\",\n                          \"label\": \"Another page (URL)\",\n                          \"hideFields\": [\n                            \"time\"\n                          ]\n                        }\n                      ],\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"time\",\n                      \"type\": \"number\",\n                      \"widget\": \"timecode\",\n                      \"label\": \"Go To\",\n                      \"description\": \"The target time the user will be taken to upon pressing the hotspot. Enter timecode in the format M:SS.\",\n                      \"optional\": true\n                    },\n                    {\n                      \"name\": \"url\",\n                      \"type\": \"group\",\n                      \"label\": \"URL\",\n                      \"widget\": \"linkWidget\",\n                      \"optional\": true,\n                      \"fields\": [\n                        {\n                          \"name\": \"protocol\",\n                          \"type\": \"select\",\n                          \"label\": \"Protocol\",\n                          \"options\": [\n                            {\n                              \"value\": \"http://\",\n                              \"label\": \"http://\"\n                            },\n                            {\n                              \"value\": \"https://\",\n                              \"label\": \"https://\"\n                            },\n                            {\n                              \"value\": \"/\",\n                              \"label\": \"(root relative)\"\n                            },\n                            {\n                              \"value\": \"other\",\n                              \"label\": \"other\"\n                            }\n                          ],\n                          \"optional\": true,\n                          \"default\": \"http://\"\n                        },\n                        {\n                          \"name\": \"url\",\n                          \"type\": \"text\",\n                          \"label\": \"URL\",\n                          \"optional\": true\n                        }\n                      ]\n                    },\n                    {\n                      \"name\": \"visualize\",\n                      \"type\": \"boolean\",\n                      \"label\": \"Visualize\",\n                      \"description\": \"Show that interaction can be clicked by adding a border and an icon\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"bookmarks\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"bookmark\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          },\n          {\n            \"name\": \"endscreens\",\n            \"importance\": \"low\",\n            \"type\": \"list\",\n            \"field\": {\n              \"name\": \"endscreen\",\n              \"type\": \"group\",\n              \"fields\": [\n                {\n                  \"name\": \"time\",\n                  \"type\": \"number\"\n                },\n                {\n                  \"name\": \"label\",\n                  \"type\": \"text\"\n                }\n              ]\n            }\n          }\n        ]\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"group\",\n        \"label\": \"Summary task\",\n        \"importance\": \"high\",\n        \"fields\": [\n          {\n            \"name\": \"task\",\n            \"type\": \"library\",\n            \"options\": [\n              \"H5P.Summary 1.10\"\n            ],\n            \"default\": {\n              \"library\": \"H5P.Summary 1.10\",\n              \"params\": {}\n            }\n          },\n          {\n            \"name\": \"displayAt\",\n            \"type\": \"number\",\n            \"label\": \"Display at\",\n            \"description\": \"Number of seconds before the video ends.\",\n            \"default\": 3\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behavioural settings\",\n    \"importance\": \"low\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"startVideoAt\",\n        \"type\": \"number\",\n        \"widget\": \"timecode\",\n        \"label\": \"Start video at\",\n        \"importance\": \"low\",\n        \"optional\": true,\n        \"description\": \"Enter timecode in the format M:SS\"\n      },\n      {\n        \"name\": \"autoplay\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto-play video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Start playing the video automatically\"\n      },\n      {\n        \"name\": \"loop\",\n        \"type\": \"boolean\",\n        \"label\": \"Loop the video\",\n        \"default\": false,\n        \"optional\": true,\n        \"description\": \"Check if video should run in a loop\"\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be shown for all questions, disabled for all or configured for each question individually.\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"showBookmarksmenuOnLoad\",\n        \"type\": \"boolean\",\n        \"label\": \"Start with bookmarks menu open\",\n        \"importance\": \"low\",\n        \"default\": false,\n        \"description\": \"This function is not available on iPad when using YouTube as video source.\"\n      },\n      {\n        \"name\": \"showRewind10\",\n        \"type\": \"boolean\",\n        \"label\": \"Show button for rewinding 10 seconds\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"preventSkipping\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Prevent skipping forward in a video\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this options will disable user video navigation through default controls.\"\n      },\n      {\n        \"name\": \"deactivateSound\",\n        \"type\": \"boolean\",\n        \"default\": false,\n        \"label\": \"Deactivate sound\",\n        \"importance\": \"low\",\n        \"description\": \"Enabling this option will deactivate the video's sound and prevent it from being switched on.\"\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"interaction\",\n        \"type\": \"text\",\n        \"label\": \"Interaction title\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"play\",\n        \"type\": \"text\",\n        \"label\": \"Play title\",\n        \"importance\": \"low\",\n        \"default\": \"Play\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"pause\",\n        \"type\": \"text\",\n        \"label\": \"Pause title\",\n        \"importance\": \"low\",\n        \"default\": \"Pause\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"mute\",\n        \"type\": \"text\",\n        \"label\": \"Mute title\",\n        \"importance\": \"low\",\n        \"default\": \"Mute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"unmute\",\n        \"type\": \"text\",\n        \"label\": \"Unmute title\",\n        \"importance\": \"low\",\n        \"default\": \"Unmute\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"quality\",\n        \"type\": \"text\",\n        \"label\": \"Video quality title\",\n        \"importance\": \"low\",\n        \"default\": \"Video Quality\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"captions\",\n        \"type\": \"text\",\n        \"label\": \"Video captions title\",\n        \"importance\": \"low\",\n        \"default\": \"Captions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"close\",\n        \"type\": \"text\",\n        \"label\": \"Close button text\",\n        \"importance\": \"low\",\n        \"default\": \"Close\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen title\",\n        \"importance\": \"low\",\n        \"default\": \"Exit Fullscreen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Summary title\",\n        \"importance\": \"low\",\n        \"default\": \"Open summary dialog\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"bookmarks\",\n        \"type\": \"text\",\n        \"label\": \"Bookmarks title\",\n        \"importance\": \"low\",\n        \"default\": \"Bookmarks\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endscreen\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"Submit screen\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"defaultAdaptivitySeekLabel\",\n        \"type\": \"text\",\n        \"label\": \"Default label for adaptivity seek button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"continueWithVideo\",\n        \"type\": \"text\",\n        \"label\": \"Default label for continue video button\",\n        \"importance\": \"low\",\n        \"default\": \"Continue with video\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"playbackRate\",\n        \"type\": \"text\",\n        \"label\": \"Set playback rate\",\n        \"importance\": \"low\",\n        \"default\": \"Playback Rate\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"rewind10\",\n        \"type\": \"text\",\n        \"label\": \"Rewind 10 Seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Rewind 10 Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"navDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Navigation is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Navigation is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"sndDisabled\",\n        \"type\": \"text\",\n        \"label\": \"Sound is disabled text\",\n        \"importance\": \"low\",\n        \"default\": \"Sound is disabled\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"requiresCompletionWarning\",\n        \"type\": \"text\",\n        \"label\": \"Warning that the user must answer the question correctly before continuing\",\n        \"importance\": \"low\",\n        \"default\": \"You need to answer all the questions correctly before continuing.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"back\",\n        \"type\": \"text\",\n        \"label\": \"Back button\",\n        \"importance\": \"low\",\n        \"default\": \"Back\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"hours\",\n        \"type\": \"text\",\n        \"label\": \"Passed time hours\",\n        \"importance\": \"low\",\n        \"default\": \"Hours\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"minutes\",\n        \"type\": \"text\",\n        \"label\": \"Passed time minutes\",\n        \"importance\": \"low\",\n        \"default\": \"Minutes\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"seconds\",\n        \"type\": \"text\",\n        \"label\": \"Passed time seconds\",\n        \"importance\": \"low\",\n        \"default\": \"Seconds\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"currentTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for current time\",\n        \"importance\": \"low\",\n        \"default\": \"Current time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"totalTime\",\n        \"type\": \"text\",\n        \"label\": \"Label for total time\",\n        \"importance\": \"low\",\n        \"default\": \"Total time:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"singleInteractionAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text explaining that a single interaction with a name has come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Interaction appeared:\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"multipleInteractionsAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Text for explaining that multiple interactions have come into view\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple interactions appeared.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"videoPausedAnnouncement\",\n        \"type\": \"text\",\n        \"label\": \"Video is paused announcement\",\n        \"importance\": \"low\",\n        \"default\": \"Video is paused\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"content\",\n        \"type\": \"text\",\n        \"label\": \"Content label\",\n        \"importance\": \"low\",\n        \"default\": \"Content\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"answered\",\n        \"type\": \"text\",\n        \"label\": \"Answered message (@answered will be replaced with the number of answered questions)\",\n        \"importance\": \"low\",\n        \"default\": \"@answered answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTitle\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen title\",\n        \"importance\": \"low\",\n        \"default\": \"@answered Question(s) answered\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformation\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered @answered questions, click below to submit your answers.\",\n        \"description\": \"@answered will be replaced by the number of answered questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationNoAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for missing answers\",\n        \"importance\": \"low\",\n        \"default\": \"You have not answered any questions.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardInformationMustHaveAnswer\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen information for answer needed\",\n        \"importance\": \"low\",\n        \"default\": \"You have to answer at least one question before you can submit your answers.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitButton\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit button\",\n        \"importance\": \"low\",\n        \"default\": \"Submit Answers\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardSubmitMessage\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen submit message\",\n        \"importance\": \"low\",\n        \"default\": \"Your answers have been submitted!\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowAnswered\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Answered questions\",\n        \"importance\": \"low\",\n        \"default\": \"Answered questions\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardTableRowScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen table row title: Score\",\n        \"importance\": \"low\",\n        \"default\": \"Score\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endcardAnsweredScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen answered score\",\n        \"importance\": \"low\",\n        \"default\": \"answered\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary including score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"endCardTableRowSummaryWithoutScore\",\n        \"type\": \"text\",\n        \"label\": \"Submit screen row summary for no score (for readspeakers)\",\n        \"importance\": \"low\",\n        \"default\": \"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\",\n        \"optional\": true\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            },
            "created_at": "2020-09-30T20:24:58.000000Z",
            "updated_at": "2020-09-30T20:24:58.000000Z"
        },
        "library_name": "H5P.InteractiveVideo",
        "major_version": 1,
        "minor_version": 21,
        "user_name": null,
        "user_id": null,
        "created_at": "2020-09-30T20:24:58.000000Z",
        "updated_at": "2020-09-30T20:24:58.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{activity_id}/detail

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

activity_id  integer  

The ID of the activity.

suborganization  string  

The Id of a organization

activity  string  

The Id of a activity

H5P Activity

Get H5P Activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/h5p" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/h5p"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/h5p',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activity": {
        "id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p": {
            "settings": {
                "baseUrl": "https://www.currikistudio.org/api",
                "url": "https://www.currikistudio.org/api/storage/h5p",
                "postUserStatistics": true,
                "ajax": {
                    "setFinished": "https://www.currikistudio.org/api/api/h5p/ajax/url",
                    "contentUserData": "https://www.currikistudio.org/api/api/h5p/ajax/content-user-data/?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
                },
                "saveFreq": false,
                "siteUrl": "https://www.currikistudio.org/api",
                "l10n": {
                    "H5P": {
                        "fullscreen": "Fullscreen",
                        "disableFullscreen": "Disable fullscreen",
                        "download": "Download",
                        "copyrights": "Rights of use",
                        "embed": "Embed",
                        "reuseDescription": "Reuse this content.",
                        "size": "Size",
                        "showAdvanced": "Show advanced",
                        "hideAdvanced": "Hide advanced",
                        "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                        "copyrightInformation": "Rights of use",
                        "close": "Close",
                        "title": "Title",
                        "author": "Author",
                        "year": "Year",
                        "source": "Source",
                        "license": "License",
                        "thumbnail": "Thumbnail",
                        "noCopyrights": "No copyright information available for this content.",
                        "downloadDescription": "Download this content as a H5P file.",
                        "copyrightsDescription": "View copyright information for this content.",
                        "embedDescription": "View the embed code for this content.",
                        "h5pDescription": "Visit H5P.org to check out more cool content.",
                        "contentChanged": "This content has changed since you last used it.",
                        "startingOver": "You'll be starting over.",
                        "confirmDialogHeader": "Confirm action",
                        "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                        "cancelLabel": "Cancel",
                        "confirmLabel": "Confirm",
                        "reuse": "Reuse",
                        "reuseContent": "Reuse Content"
                    }
                },
                "hubIsEnabled": false,
                "user": {
                    "name": "John Doe",
                    "email": "john.doe@currikistudio.org"
                },
                "editor": {
                    "filesPath": "https://www.currikistudio.org/api/storage/h5p/editor",
                    "fileIcon": {
                        "path": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                        "width": 50,
                        "height": 50
                    },
                    "ajaxPath": "https://www.currikistudio.org/api/api/v1/h5p/ajax/",
                    "libraryUrl": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/",
                    "copyrightSemantics": {
                        "name": "copyright",
                        "type": "group",
                        "label": "Copyright information",
                        "fields": [
                            {
                                "name": "title",
                                "type": "text",
                                "label": "Title",
                                "placeholder": "La Gioconda",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Author",
                                "placeholder": "Leonardo da Vinci",
                                "optional": true
                            },
                            {
                                "name": "year",
                                "type": "text",
                                "label": "Year(s)",
                                "placeholder": "1503 - 1517",
                                "optional": true
                            },
                            {
                                "name": "source",
                                "type": "text",
                                "label": "Source",
                                "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                                "optional": true,
                                "regexp": {
                                    "pattern": "^http[s]?://.+",
                                    "modifiers": "i"
                                }
                            },
                            {
                                "name": "license",
                                "type": "select",
                                "label": "License",
                                "default": "U",
                                "options": [
                                    {
                                        "value": "U",
                                        "label": "Undisclosed"
                                    },
                                    {
                                        "value": "CC BY",
                                        "label": "Attribution",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-SA",
                                        "label": "Attribution-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-ND",
                                        "label": "Attribution-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC",
                                        "label": "Attribution-NonCommercial",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-SA",
                                        "label": "Attribution-NonCommercial-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-ND",
                                        "label": "Attribution-NonCommercial-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "GNU GPL",
                                        "label": "General Public License",
                                        "versions": [
                                            {
                                                "value": "v3",
                                                "label": "Version 3"
                                            },
                                            {
                                                "value": "v2",
                                                "label": "Version 2"
                                            },
                                            {
                                                "value": "v1",
                                                "label": "Version 1"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "PD",
                                        "label": "Public Domain",
                                        "versions": [
                                            {
                                                "value": "-",
                                                "label": "-"
                                            },
                                            {
                                                "value": "CC0 1.0",
                                                "label": "CC0 1.0 Universal"
                                            },
                                            {
                                                "value": "CC PDM",
                                                "label": "Public Domain Mark"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "C",
                                        "label": "Copyright"
                                    }
                                ]
                            },
                            {
                                "name": "version",
                                "type": "select",
                                "label": "License Version",
                                "options": []
                            }
                        ]
                    },
                    "metadataSemantics": [
                        {
                            "name": "title",
                            "type": "text",
                            "label": "Title",
                            "placeholder": "La Gioconda"
                        },
                        {
                            "name": "license",
                            "type": "select",
                            "label": "License",
                            "default": "U",
                            "options": [
                                {
                                    "value": "U",
                                    "label": "Undisclosed"
                                },
                                {
                                    "type": "optgroup",
                                    "label": "Creative Commons",
                                    "options": [
                                        {
                                            "value": "CC BY",
                                            "label": "Attribution (CC BY)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-SA",
                                            "label": "Attribution-ShareAlike (CC BY-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-ND",
                                            "label": "Attribution-NoDerivs (CC BY-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC",
                                            "label": "Attribution-NonCommercial (CC BY-NC)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-SA",
                                            "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-ND",
                                            "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC0 1.0",
                                            "label": "Public Domain Dedication (CC0)"
                                        },
                                        {
                                            "value": "CC PDM",
                                            "label": "Public Domain Mark (PDM)"
                                        }
                                    ]
                                },
                                {
                                    "value": "GNU GPL",
                                    "label": "General Public License v3"
                                },
                                {
                                    "value": "PD",
                                    "label": "Public Domain"
                                },
                                {
                                    "value": "ODC PDDL",
                                    "label": "Public Domain Dedication and Licence"
                                },
                                {
                                    "value": "C",
                                    "label": "Copyright"
                                }
                            ]
                        },
                        {
                            "name": "licenseVersion",
                            "type": "select",
                            "label": "License Version",
                            "options": [
                                {
                                    "value": "4.0",
                                    "label": "4.0 International"
                                },
                                {
                                    "value": "3.0",
                                    "label": "3.0 Unported"
                                },
                                {
                                    "value": "2.5",
                                    "label": "2.5 Generic"
                                },
                                {
                                    "value": "2.0",
                                    "label": "2.0 Generic"
                                },
                                {
                                    "value": "1.0",
                                    "label": "1.0 Generic"
                                }
                            ],
                            "optional": true
                        },
                        {
                            "name": "yearFrom",
                            "type": "number",
                            "label": "Years (from)",
                            "placeholder": "1991",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "yearTo",
                            "type": "number",
                            "label": "Years (to)",
                            "placeholder": "1992",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "type": "text",
                            "label": "Source",
                            "placeholder": "https://",
                            "optional": true
                        },
                        {
                            "name": "authors",
                            "type": "list",
                            "field": {
                                "name": "author",
                                "type": "group",
                                "fields": [
                                    {
                                        "label": "Author's name",
                                        "name": "name",
                                        "optional": true,
                                        "type": "text"
                                    },
                                    {
                                        "name": "role",
                                        "type": "select",
                                        "label": "Author's role",
                                        "default": "Author",
                                        "options": [
                                            {
                                                "value": "Author",
                                                "label": "Author"
                                            },
                                            {
                                                "value": "Editor",
                                                "label": "Editor"
                                            },
                                            {
                                                "value": "Licensee",
                                                "label": "Licensee"
                                            },
                                            {
                                                "value": "Originator",
                                                "label": "Originator"
                                            }
                                        ]
                                    }
                                ]
                            }
                        },
                        {
                            "name": "licenseExtras",
                            "type": "text",
                            "widget": "textarea",
                            "label": "License Extras",
                            "optional": true,
                            "description": "Any additional information about the license"
                        },
                        {
                            "name": "changes",
                            "type": "list",
                            "field": {
                                "name": "change",
                                "type": "group",
                                "label": "Changelog",
                                "fields": [
                                    {
                                        "name": "date",
                                        "type": "text",
                                        "label": "Date",
                                        "optional": true
                                    },
                                    {
                                        "name": "author",
                                        "type": "text",
                                        "label": "Changed by",
                                        "optional": true
                                    },
                                    {
                                        "name": "log",
                                        "type": "text",
                                        "widget": "textarea",
                                        "label": "Description of change",
                                        "placeholder": "Photo cropped, text changed, etc.",
                                        "optional": true
                                    }
                                ]
                            }
                        },
                        {
                            "name": "authorComments",
                            "type": "text",
                            "widget": "textarea",
                            "label": "Author comments",
                            "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                            "optional": true
                        },
                        {
                            "name": "contentType",
                            "type": "text",
                            "widget": "none"
                        },
                        {
                            "name": "defaultLanguage",
                            "type": "text",
                            "widget": "none"
                        }
                    ],
                    "assets": {
                        "css": [
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                        ],
                        "js": [
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                            "https://www.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                        ]
                    },
                    "deleteMessage": "laravel-h5p.content.destoryed",
                    "apiVersion": {
                        "majorVersion": 1,
                        "minorVersion": 24
                    }
                },
                "loadedJs": [],
                "loadedCss": [],
                "core": {
                    "styles": [
                        "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
                    ],
                    "scripts": [
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                        "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                        "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                        "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
                    ]
                },
                "contents": {
                    "cid-59": {
                        "library": "H5P.InteractiveVideo 1.21",
                        "jsonContent": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                        "fullScreen": 1,
                        "exportUrl": "https://www.currikistudio.org/api/h5p/export/59",
                        "embedCode": "<iframe src=\"https://www.currikistudio.org/h5p/embed/59\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                        "resizeCode": "<script src=\"https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                        "url": "https://www.currikistudio.org/api/h5p/embed/59",
                        "title": "Science of Golf: Why Balls Have Dimples",
                        "displayOptions": {
                            "frame": true,
                            "export": true,
                            "embed": true,
                            "copyright": false,
                            "icon": true,
                            "copy": false
                        },
                        "contentUserData": [
                            {
                                "state": "{}"
                            }
                        ],
                        "scripts": [
                            "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/question.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/explainer.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/score-points.js?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SoundJS-1.0/soundjs-0.6.2.min.js?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/stop-watch.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/sound-effects.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/xapi-event-builder.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/result-slide.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/solution-view.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice-alternative.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/scripts/single-choice-set.js?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/stop-watch.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/xapi-event-builder.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/summary.js?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNDrop-1.1/drag-n-drop.js?ver=1.1.5",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.js?ver=1.2.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/context-menu.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/dialog.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-element.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-form-manager.js?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/flowplayer-1.0/scripts/flowplayer-3.2.12.min.js?ver=1.0.5",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/youtube.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/panopto.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/html5.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/flash.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/video.js?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.js?ver=1.10.19",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.js?ver=1.21.9"
                        ],
                        "styles": [
                            "https://www.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/question.css?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/explainer.css?ver=1.4.7",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.SingleChoiceSet-1.11/styles/single-choice-set.css?ver=1.11.9",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/css/summary.css?ver=1.10.8",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.css?ver=1.2.6",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/dialog.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/context-menu.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar-form-manager.css?ver=1.5.10",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/styles/video.css?ver=1.5.12",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.css?ver=1.10.19",
                            "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.css?ver=1.21.9"
                        ]
                    }
                }
            },
            "user": {
                "id": 1,
                "name": "John Doe",
                "email": "john.doe@currikistudio.org"
            },
            "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-59\" class=\"h5p-iframe\" data-content-id=\"59\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
        },
        "playlist": {
            "id": 1,
            "title": "The Engineering & Design Behind Golf Balls",
            "project_id": 1,
            "order": 0,
            "created_at": null,
            "updated_at": null,
            "deleted_at": null,
            "elasticsearch": true,
            "is_public": true,
            "project": {
                "id": 1,
                "name": "The Science of Golf",
                "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
                "starter_project": false,
                "created_at": "2020-04-30T20:03:12.000000Z",
                "updated_at": "2020-09-17T05:44:49.000000Z",
                "deleted_at": null,
                "elasticsearch": false,
                "shared": true,
                "is_public": true
            }
        },
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": true,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "first_name": "John",
                    "last_name": "Doe",
                    "email": "john.doe@currikistudio.org",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-09-17T05:44:49.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{activity_id}/h5p

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

activity_id  integer  

The ID of the activity.

suborganization  string  

The Id of a suborganization

activity  string  

The Id of a activity

Clone Stand Alone Activity

Clone the specified activity of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/clone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/clone"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/stand-alone-activity/761/clone',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity is being cloned|duplicated in background!"
}
 

Example response (400):


{
    "errors": [
        "Not a Public Activity."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to clone activity."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/stand-alone-activity/{activity_id}/clone

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

activity_id  integer  

The ID of the activity.

suborganization  string  

The Id of a suborganization

activity  string  

The Id of an activity

Get H5P Resource Settings (Shared)

Get H5P Resource Settings for a shared activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/h5p-resource-settings-shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/h5p-resource-settings-shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/h5p-resource-settings-shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Activity not found."
    ]
}
 

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/activities/{activity_id}/h5p-resource-settings-shared

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

6. Independent Activity

APIs for independent activity management

Get Independent Activities

Get a list of independent activities

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/independent-activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"Video\",
    \"indexing\": \"3\",
    \"shared\": true,
    \"created_from\": \"2022-12-01\",
    \"created_to\": \"2022-12-01\",
    \"updated_from\": \"2022-12-01\",
    \"updated_to\": \"2022-12-01\",
    \"author_id\": 18,
    \"order_by_column\": \"title\",
    \"order_by_type\": \"asc\",
    \"size\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "Video",
    "indexing": "3",
    "shared": true,
    "created_from": "2022-12-01",
    "created_to": "2022-12-01",
    "updated_from": "2022-12-01",
    "updated_to": "2022-12-01",
    "author_id": 18,
    "order_by_column": "title",
    "order_by_type": "asc",
    "size": 10
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'Video',
            'indexing' => '3',
            'shared' => true,
            'created_from' => '2022-12-01',
            'created_to' => '2022-12-01',
            'updated_from' => '2022-12-01',
            'updated_to' => '2022-12-01',
            'author_id' => 18,
            'order_by_column' => 'title',
            'order_by_type' => 'asc',
            'size' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "title": "title",
            "type": "h5p",
            "content": "place_holder",
            "description": null,
            "shared": false,
            "order": 0,
            "thumb_url": null,
            "created_at": "2022-04-28T01:03:22.000000Z",
            "updated_at": "2022-04-28T01:03:22.000000Z",
            "gcr_activity_visibility": false,
            "subjects": [
                {
                    "id": 1,
                    "name": "Arts",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-21T12:41:25.000000Z",
                    "updated_at": null
                }
            ],
            "education_levels": [
                {
                    "id": 1,
                    "name": "Preschool (Ages 0-4)",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-20T17:33:20.000000Z",
                    "updated_at": null
                }
            ],
            "author_tags": [
                {
                    "id": 1,
                    "name": "Homework/Assignment",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-20T17:38:02.000000Z",
                    "updated_at": null
                }
            ],
            "source_type": null,
            "source_url": null,
            "organization_visibility_type_id": 1,
            "status": 1,
            "status_text": "DRAFT",
            "indexing": null,
            "indexing_text": "NOT REQUESTED",
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2021-05-03T19:24:58.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "h5p_content": null
        },
        {
            "id": 6,
            "title": "title",
            "type": "h5p",
            "content": "place_holder",
            "description": null,
            "shared": false,
            "order": 1,
            "thumb_url": null,
            "created_at": "2022-04-28T00:33:33.000000Z",
            "updated_at": "2022-05-19T12:16:05.000000Z",
            "gcr_activity_visibility": false,
            "subjects": [],
            "education_levels": [],
            "author_tags": [],
            "source_type": null,
            "source_url": null,
            "organization_visibility_type_id": 4,
            "status": 2,
            "status_text": "FINISHED",
            "indexing": 1,
            "indexing_text": "REQUESTED",
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2021-05-03T19:24:58.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "h5p_content": null
        }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/independent-activities

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Query to search independent activity against

indexing  string optional  

Must be one of 0, 1, 2, or 3.

shared  boolean optional  

created_from  string optional  

Must be a valid date in the format Y-m-d.

created_to  string optional  

Must be a valid date in the format Y-m-d.

updated_from  string optional  

Must be a valid date in the format Y-m-d.

updated_to  string optional  

Must be a valid date in the format Y-m-d.

author_id  integer optional  

order_by_column  string optional  

To sort data with specific column

order_by_type  string optional  

To sort data in ascending or descending order

size  integer optional  

Size to show per page records

Create Independent Activity

Create a new independent activity.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"type\": \"h5p\",
    \"content\": \"nihil\",
    \"description\": \"dntotffxowszyxvytqymkjuueoombnmijidjitbcwedlycldzaumukialsmyicalvzrheiobsilwvncippiewbsihgzrketdblbtgqvytoohrrcwcgslfybtyowztahbztccesokcuptfgrjfnibyesvmsygninzmmnqphlldtcedwttugcswtpsutuemxvsfwaxdmepmqwsvynshszelipwnraphixlhwczdedvawvopzrjivvstkjotnyxycmpcpvdvaaqlgzjraptivnwbuozojpzfrlrrdrzbvsuwbbcdxhuiqsbolwmtneukfejqhnnznzkbroqindgbxaqyqlygmvpepbyeqoyzfnm\",
    \"order\": 2,
    \"shared\": true,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"source_type\": \"expedita\",
    \"source_url\": \"voluptas\",
    \"organization_visibility_type_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "type": "h5p",
    "content": "nihil",
    "description": "dntotffxowszyxvytqymkjuueoombnmijidjitbcwedlycldzaumukialsmyicalvzrheiobsilwvncippiewbsihgzrketdblbtgqvytoohrrcwcgslfybtyowztahbztccesokcuptfgrjfnibyesvmsygninzmmnqphlldtcedwttugcswtpsutuemxvsfwaxdmepmqwsvynshszelipwnraphixlhwczdedvawvopzrjivvstkjotnyxycmpcpvdvaaqlgzjraptivnwbuozojpzfrlrrdrzbvsuwbbcdxhuiqsbolwmtneukfejqhnnznzkbroqindgbxaqyqlygmvpepbyeqoyzfnm",
    "order": 2,
    "shared": true,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "source_type": "expedita",
    "source_url": "voluptas",
    "organization_visibility_type_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'type' => 'h5p',
            'content' => 'nihil',
            'description' => 'dntotffxowszyxvytqymkjuueoombnmijidjitbcwedlycldzaumukialsmyicalvzrheiobsilwvncippiewbsihgzrketdblbtgqvytoohrrcwcgslfybtyowztahbztccesokcuptfgrjfnibyesvmsygninzmmnqphlldtcedwttugcswtpsutuemxvsfwaxdmepmqwsvynshszelipwnraphixlhwczdedvawvopzrjivvstkjotnyxycmpcpvdvaaqlgzjraptivnwbuozojpzfrlrrdrzbvsuwbbcdxhuiqsbolwmtneukfejqhnnznzkbroqindgbxaqyqlygmvpepbyeqoyzfnm',
            'order' => 2,
            'shared' => true,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'source_type' => 'expedita',
            'source_url' => 'voluptas',
            'organization_visibility_type_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create independent activity. Please try again later."
    ]
}
 

Example response (201):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

title  string  

The title of a activity

type  string  

The type of a activity

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

order  integer optional  

The order number of a activity

shared  boolean optional  

h5p_content_id  integer optional  

The Id of H5p content

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

source_type  string optional  

source_url  string optional  

organization_visibility_type_id  integer  

Id of the organization visibility type

Get Independent Activity

Get the specified independent activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/independent-activities/6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/6"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/6',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid organization or independent activity id."
    ]
}
 

Example response (200):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/independent-activities/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent activity

Update Independent Activity

Update the specified independent activity.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/11" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Science of Golf: Why Balls Have Dimples\",
    \"type\": \"h5p\",
    \"content\": \"dolor\",
    \"description\": \"mqrikknukvrsdcsmofqzmqiehbcxfffrnjxgitbqizlgfrsixhkqogyqqbqakwfkrhstjwxrgkchiultztikpmvuezjnaxdgrhtoknzlmrpskyjzbzeeivmxywwwxgatrbdgmquldwjsprnfevlktrqwhkafugmgurothxdikshafcvarzaleliwimjwyxgnmjxfphrnspftflkzuwxkcwtmfjpvuygktegzvphhkitfjxyotmjbpmikld\",
    \"order\": 2,
    \"shared\": false,
    \"h5p_content_id\": 59,
    \"thumb_url\": \"null\",
    \"subject_id\": [
        1,
        2
    ],
    \"education_level_id\": [
        1,
        2
    ],
    \"author_tag_id\": [
        1,
        2
    ],
    \"source_type\": \"debitis\",
    \"source_url\": \"tenetur\",
    \"organization_visibility_type_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/11"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Science of Golf: Why Balls Have Dimples",
    "type": "h5p",
    "content": "dolor",
    "description": "mqrikknukvrsdcsmofqzmqiehbcxfffrnjxgitbqizlgfrsixhkqogyqqbqakwfkrhstjwxrgkchiultztikpmvuezjnaxdgrhtoknzlmrpskyjzbzeeivmxywwwxgatrbdgmquldwjsprnfevlktrqwhkafugmgurothxdikshafcvarzaleliwimjwyxgnmjxfphrnspftflkzuwxkcwtmfjpvuygktegzvphhkitfjxyotmjbpmikld",
    "order": 2,
    "shared": false,
    "h5p_content_id": 59,
    "thumb_url": "null",
    "subject_id": [
        1,
        2
    ],
    "education_level_id": [
        1,
        2
    ],
    "author_tag_id": [
        1,
        2
    ],
    "source_type": "debitis",
    "source_url": "tenetur",
    "organization_visibility_type_id": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/11',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Science of Golf: Why Balls Have Dimples',
            'type' => 'h5p',
            'content' => 'dolor',
            'description' => 'mqrikknukvrsdcsmofqzmqiehbcxfffrnjxgitbqizlgfrsixhkqogyqqbqakwfkrhstjwxrgkchiultztikpmvuezjnaxdgrhtoknzlmrpskyjzbzeeivmxywwwxgatrbdgmquldwjsprnfevlktrqwhkafugmgurothxdikshafcvarzaleliwimjwyxgnmjxfphrnspftflkzuwxkcwtmfjpvuygktegzvphhkitfjxyotmjbpmikld',
            'order' => 2,
            'shared' => false,
            'h5p_content_id' => 59,
            'thumb_url' => 'null',
            'subject_id' => [
                1,
                2,
            ],
            'education_level_id' => [
                1,
                2,
            ],
            'author_tag_id' => [
                1,
                2,
            ],
            'source_type' => 'debitis',
            'source_url' => 'tenetur',
            'organization_visibility_type_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid organization or independent activity id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update independent activity."
    ]
}
 

Example response (200):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

PUT api/v1/suborganization/{suborganization_id}/independent-activities/{id}

PATCH api/v1/suborganization/{suborganization_id}/independent-activities/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent activity

Body Parameters

title  string  

The title of a activity

type  string  

The type of a activity

content  string  

The content of a activity Example:

description  string optional  

Must not be greater than 500 characters.

order  integer optional  

The order number of a activity

shared  boolean optional  

The status of share of a activity

h5p_content_id  integer optional  

The Id of H5p content

data  string optional  

thumb_url  string optional  

The image url of thumbnail

subject_id  string[] optional  

The Ids of a subject

education_level_id  string[] optional  

The Ids of a education level

author_tag_id  string[] optional  

The Ids of a author tag

source_type  string optional  

source_url  string optional  

organization_visibility_type_id  integer  

Id of the organization visibility type

Remove Independent Activity

Remove the specified independent activity.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Independent activity has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete independent activity."
    ]
}
 

Request      

DELETE api/v1/suborganization/{suborganization_id}/independent-activities/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent activity

Upload Independent Activity thumbnail

Upload thumbnail image for an independent activity

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/independent-activities/upload-thumb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"thumb\": \"(binary)\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/upload-thumb"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "thumb": "(binary)"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/independent-activities/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'thumb' => '(binary)',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/independent-activities/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/independent-activities/upload-thumb

Body Parameters

thumb  image  

Thumbnail image to upload

Get Independent Activity Detail

Get the specified independent activity in detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/16/detail" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/16/detail"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/16/detail',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "independent-activity": {
        "id": 1,
        "title": "Taurus 10 Jun 2022 edited",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 7,
        "thumb_url": "https://images.pexels.com/photos/420233/pexels-photo-420233.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "subjects": [],
        "education_levels": [],
        "author_tags": [],
        "h5p": "{\"params\":{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}},\"metadata\":{\"title\":\"Taurus 10 Jun 2022\",\"license\":\"U\"}}",
        "h5p_content": {
            "id": 54166,
            "created_at": "2022-06-10T01:49:20.000000Z",
            "updated_at": "2022-06-10T01:49:20.000000Z",
            "user_id": 1,
            "title": "Taurus 10 Jun 2022",
            "library_id": 160,
            "parameters": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "slug": "taurus-10-jun-2022",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null,
            "library": {
                "id": 160,
                "created_at": null,
                "updated_at": null,
                "name": "H5P.CoursePresentation",
                "title": "Course Presentation",
                "major_version": 1,
                "minor_version": 22,
                "patch_version": 2,
                "runnable": 1,
                "restricted": 0,
                "fullscreen": 1,
                "embed_types": "iframe",
                "preloaded_js": "dist/h5p-course-presentation.js",
                "preloaded_css": "dist/h5p-course-presentation.css",
                "drop_library_css": "",
                "semantics": "[\n  {\n    \"name\": \"presentation\",\n    \"type\": \"group\",\n    \"importance\": \"high\",\n    \"widget\": \"coursepresentation\",\n    \"fields\": [\n      {\n        \"name\": \"slides\",\n        \"importance\": \"high\",\n        \"type\": \"list\",\n        \"field\": {\n          \"name\": \"slide\",\n          \"importance\": \"high\",\n          \"type\": \"group\",\n          \"fields\": [\n            {\n              \"name\": \"elements\",\n              \"importance\": \"high\",\n              \"type\": \"list\",\n              \"field\": {\n                \"name\": \"element\",\n                \"importance\": \"high\",\n                \"type\": \"group\",\n                \"fields\": [\n                  {\n                    \"name\": \"x\",\n                    \"importance\": \"low\",\n                    \"type\": \"number\",\n                    \"widget\": \"none\"\n                  },\n                  {\n                    \"name\": \"y\",\n                    \"importance\": \"low\",\n                    \"type\": \"number\",\n                    \"widget\": \"none\"\n                  },\n                  {\n                    \"name\": \"width\",\n                    \"importance\": \"low\",\n                    \"type\": \"number\",\n                    \"widget\": \"none\",\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"height\",\n                    \"importance\": \"low\",\n                    \"type\": \"number\",\n                    \"widget\": \"none\",\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"action\",\n                    \"type\": \"library\",\n                    \"importance\": \"high\",\n                    \"options\": [\n                      \"H5P.AdvancedText 1.1\",\n                      \"H5P.Link 1.3\",\n                      \"H5P.Image 1.1\",\n                      \"H5P.Shape 1.0\",\n                      \"H5P.Video 1.5\",\n                      \"H5P.Audio 1.4\",\n                      \"H5P.Blanks 1.12\",\n                      \"H5P.SingleChoiceSet 1.11\",\n                      \"H5P.MultiChoice 1.14\",\n                      \"H5P.TrueFalse 1.6\",\n                      \"H5P.DragQuestion 1.13\",\n                      \"H5P.Summary 1.10\",\n                      \"H5P.DragText 1.8\",\n                      \"H5P.MarkTheWords 1.9\",\n                      \"H5P.Dialogcards 1.8\",\n                      \"H5P.ContinuousText 1.2\",\n                      \"H5P.ExportableTextArea 1.3\",\n                      \"H5P.Table 1.1\",\n                      \"H5P.InteractiveVideo 1.22\",\n                      \"H5P.TwitterUserFeed 1.0\"\n                    ],\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"solution\",\n                    \"type\": \"text\",\n                    \"widget\": \"html\",\n                    \"optional\": true,\n                    \"label\": \"Comments\",\n                    \"importance\": \"low\",\n                    \"description\": \"The comments are shown when the user displays the suggested answers for all slides.\",\n                    \"enterMode\": \"p\",\n                    \"tags\": [\n                      \"strong\",\n                      \"em\",\n                      \"del\",\n                      \"a\",\n                      \"ul\",\n                      \"ol\",\n                      \"h2\",\n                      \"h3\",\n                      \"hr\",\n                      \"pre\",\n                      \"code\"\n                    ]\n                  },\n                  {\n                    \"name\": \"alwaysDisplayComments\",\n                    \"type\": \"boolean\",\n                    \"label\": \"Always display comments\",\n                    \"importance\": \"low\",\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"backgroundOpacity\",\n                    \"type\": \"number\",\n                    \"label\": \"Background Opacity\",\n                    \"importance\": \"low\",\n                    \"min\": 0,\n                    \"max\": 100,\n                    \"step\": 5,\n                    \"default\": 0,\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"displayAsButton\",\n                    \"type\": \"boolean\",\n                    \"label\": \"Display as button\",\n                    \"importance\": \"medium\",\n                    \"default\": false,\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"buttonSize\",\n                    \"type\": \"select\",\n                    \"label\": \"Button size\",\n                    \"importance\": \"low\",\n                    \"optional\": false,\n                    \"default\": \"big\",\n                    \"options\": [\n                      {\n                        \"value\": \"small\",\n                        \"label\": \"Small\"\n                      },\n                      {\n                        \"value\": \"big\",\n                        \"label\": \"Big\"\n                      }\n                    ]\n                  },\n                  {\n                    \"name\": \"title\",\n                    \"type\": \"text\",\n                    \"optional\": true,\n                    \"label\": \"Title\",\n                    \"importance\": \"medium\"\n                  },\n                  {\n                    \"name\": \"goToSlideType\",\n                    \"type\": \"select\",\n                    \"label\": \"Go to\",\n                    \"importance\": \"medium\",\n                    \"optional\": false,\n                    \"options\": [\n                      {\n                        \"value\": \"specified\",\n                        \"label\": \"Specific slide number\"\n                      },\n                      {\n                        \"value\": \"next\",\n                        \"label\": \"Next slide\"\n                      },\n                      {\n                        \"value\": \"previous\",\n                        \"label\": \"Previous slide\"\n                      }\n                    ],\n                    \"default\": \"specified\"\n                  },\n                  {\n                    \"name\": \"goToSlide\",\n                    \"type\": \"number\",\n                    \"label\": \"Specific slide number\",\n                    \"description\": \"Only applicable when 'Specific slide number' is selected\",\n                    \"importance\": \"low\",\n                    \"min\": 1,\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"invisible\",\n                    \"type\": \"boolean\",\n                    \"label\": \"Invisible\",\n                    \"importance\": \"low\",\n                    \"description\": \"Default cursor, no title and no tab index. Warning: Users with disabilities or keyboard only users will have trouble using this element.\",\n                    \"default\": false\n                  }\n                ]\n              }\n            },\n            {\n              \"name\": \"keywords\",\n              \"importance\": \"low\",\n              \"type\": \"list\",\n              \"optional\": true,\n              \"field\": {\n                \"name\": \"keyword\",\n                \"importance\": \"low\",\n                \"type\": \"group\",\n                \"optional\": true,\n                \"fields\": [\n                  {\n                    \"name\": \"main\",\n                    \"importance\": \"low\",\n                    \"type\": \"text\",\n                    \"optional\": true\n                  },\n                  {\n                    \"name\": \"subs\",\n                    \"importance\": \"low\",\n                    \"type\": \"list\",\n                    \"optional\": true,\n                    \"field\": {\n                      \"name\": \"keyword\",\n                      \"importance\": \"low\",\n                      \"type\": \"text\"\n                    }\n                  }\n                ]\n              }\n            },\n            {\n              \"name\": \"slideBackgroundSelector\",\n              \"importance\": \"medium\",\n              \"type\": \"group\",\n              \"widget\": \"radioSelector\",\n              \"fields\": [\n                {\n                  \"name\": \"imageSlideBackground\",\n                  \"type\": \"image\",\n                  \"label\": \"Image\",\n                  \"importance\": \"medium\",\n                  \"optional\": true,\n                  \"description\": \"Image background should have a 2:1 width to height ratio to avoid stretching. High resolution images will display better on larger screens.\"\n                },\n                {\n                  \"name\": \"fillSlideBackground\",\n                  \"importance\": \"medium\",\n                  \"type\": \"text\",\n                  \"widget\": \"colorSelector\",\n                  \"label\": \"Pick a color\",\n                  \"spectrum\": {\n                    \"flat\": true,\n                    \"showInput\": true,\n                    \"allowEmpty\": true,\n                    \"showButtons\": false\n                  },\n                  \"default\": null,\n                  \"optional\": true\n                }\n              ]\n            }\n          ]\n        }\n      },\n      {\n        \"name\": \"ct\",\n        \"importance\": \"low\",\n        \"type\": \"text\",\n        \"widget\": \"none\",\n        \"optional\": true,\n        \"tags\": [\n          \"strong\",\n          \"em\",\n          \"del\",\n          \"br\",\n          \"p\",\n          \"a\",\n          \"h2\",\n          \"h3\",\n          \"pre\",\n          \"code\"\n        ]\n      },\n      {\n        \"name\": \"keywordListEnabled\",\n        \"type\": \"boolean\",\n        \"label\": \"Keyword list\",\n        \"importance\": \"low\",\n        \"default\": true\n      },\n      {\n        \"name\": \"keywordListAlwaysShow\",\n        \"type\": \"boolean\",\n        \"label\": \"Always show\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"keywordListAutoHide\",\n        \"type\": \"boolean\",\n        \"label\": \"Auto hide\",\n        \"importance\": \"low\",\n        \"default\": false\n      },\n      {\n        \"name\": \"keywordListOpacity\",\n        \"type\": \"number\",\n        \"label\": \"Opacity\",\n        \"importance\": \"low\",\n        \"min\": 0,\n        \"max\": 100,\n        \"default\": 90\n      },\n      {\n        \"name\": \"globalBackgroundSelector\",\n        \"importance\": \"medium\",\n        \"type\": \"group\",\n        \"widget\": \"radioSelector\",\n        \"fields\": [\n          {\n            \"name\": \"imageGlobalBackground\",\n            \"type\": \"image\",\n            \"label\": \"Image\",\n            \"importance\": \"medium\",\n            \"optional\": true,\n            \"description\": \"Image background should have a 2:1 width to height ratio to avoid stretching. High resolution images will display better on larger screens.\"\n          },\n          {\n            \"name\": \"fillGlobalBackground\",\n            \"type\": \"text\",\n            \"widget\": \"colorSelector\",\n            \"label\": \"Pick a color\",\n            \"importance\": \"medium\",\n            \"spectrum\": {\n              \"flat\": true,\n              \"showInput\": true,\n              \"allowEmpty\": true,\n              \"showButtons\": false\n            },\n            \"default\": null,\n            \"optional\": true\n          }\n        ]\n      }\n    ]\n  },\n  {\n    \"name\": \"l10n\",\n    \"type\": \"group\",\n    \"label\": \"Localize\",\n    \"importance\": \"low\",\n    \"common\": true,\n    \"fields\": [\n      {\n        \"name\": \"slide\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Slide\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Slide\"\n      },\n      {\n        \"name\": \"score\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Score\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Score\"\n      },\n      {\n        \"name\": \"yourScore\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Your Score\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Your Score\"\n      },\n      {\n        \"name\": \"maxScore\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Max Score\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Max Score\"\n      },\n      {\n        \"name\": \"total\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Total\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Total\"\n      },\n      {\n        \"name\": \"totalScore\",\n        \"type\": \"text\",\n        \"label\": \"Translation for \\\"Total Score\\\"\",\n        \"importance\": \"low\",\n        \"default\": \"Total Score\"\n      },\n      {\n        \"name\": \"showSolutions\",\n        \"type\": \"text\",\n        \"label\": \"Title for show solutions button\",\n        \"importance\": \"low\",\n        \"default\": \"Show solutions\"\n      },\n      {\n        \"name\": \"retry\",\n        \"type\": \"text\",\n        \"label\": \"Text for the retry button\",\n        \"importance\": \"low\",\n        \"default\": \"Retry\",\n        \"optional\": true\n      },\n      {\n        \"name\": \"exportAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Text for the export text button\",\n        \"importance\": \"low\",\n        \"default\": \"Export text\"\n      },\n      {\n        \"name\": \"hideKeywords\",\n        \"type\": \"text\",\n        \"label\": \"Hide sidebar navigation menu button title\",\n        \"importance\": \"low\",\n        \"default\": \"Hide sidebar navigation menu\"\n      },\n      {\n        \"name\": \"showKeywords\",\n        \"type\": \"text\",\n        \"label\": \"Show sidebar navigation menu button title\",\n        \"importance\": \"low\",\n        \"default\": \"Show sidebar navigation menu\"\n      },\n      {\n        \"name\": \"fullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Fullscreen label\",\n        \"importance\": \"low\",\n        \"default\": \"Fullscreen\"\n      },\n      {\n        \"name\": \"exitFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exit fullscreen label\",\n        \"importance\": \"low\",\n        \"default\": \"Exit fullscreen\"\n      },\n      {\n        \"name\": \"prevSlide\",\n        \"type\": \"text\",\n        \"label\": \"Previous slide label\",\n        \"importance\": \"low\",\n        \"default\": \"Previous slide\"\n      },\n      {\n        \"name\": \"nextSlide\",\n        \"type\": \"text\",\n        \"label\": \"Next slide label\",\n        \"importance\": \"low\",\n        \"default\": \"Next slide\"\n      },\n      {\n        \"name\": \"currentSlide\",\n        \"type\": \"text\",\n        \"label\": \"Current slide label\",\n        \"importance\": \"low\",\n        \"default\": \"Current slide\"\n      },\n      {\n        \"name\": \"lastSlide\",\n        \"type\": \"text\",\n        \"label\": \"Last slide label\",\n        \"importance\": \"low\",\n        \"default\": \"Last slide\"\n      },\n      {\n        \"name\": \"solutionModeTitle\",\n        \"type\": \"text\",\n        \"label\": \"Exit solution mode text\",\n        \"importance\": \"low\",\n        \"default\": \"Exit solution mode\"\n      },\n      {\n        \"name\": \"solutionModeText\",\n        \"type\": \"text\",\n        \"label\": \"Solution mode text\",\n        \"importance\": \"low\",\n        \"default\": \"Solution Mode\"\n      },\n      {\n        \"name\": \"summaryMultipleTaskText\",\n        \"type\": \"text\",\n        \"label\": \"Text when multiple tasks on a page\",\n        \"importance\": \"low\",\n        \"default\": \"Multiple tasks\"\n      },\n      {\n        \"name\": \"scoreMessage\",\n        \"type\": \"text\",\n        \"label\": \"Score message text\",\n        \"importance\": \"low\",\n        \"default\": \"You achieved:\"\n      },\n      {\n        \"name\": \"shareFacebook\",\n        \"type\": \"text\",\n        \"label\": \"Share to Facebook text\",\n        \"importance\": \"low\",\n        \"default\": \"Share on Facebook\"\n      },\n      {\n        \"name\": \"shareTwitter\",\n        \"type\": \"text\",\n        \"label\": \"Share to Twitter text\",\n        \"importance\": \"low\",\n        \"default\": \"Share on Twitter\"\n      },\n      {\n        \"name\": \"shareGoogle\",\n        \"type\": \"text\",\n        \"label\": \"Share to Google text\",\n        \"importance\": \"low\",\n        \"default\": \"Share on Google+\"\n      },\n      {\n        \"name\": \"summary\",\n        \"type\": \"text\",\n        \"label\": \"Title for summary slide\",\n        \"importance\": \"low\",\n        \"default\": \"Summary\"\n      },\n      {\n        \"name\": \"solutionsButtonTitle\",\n        \"type\": \"text\",\n        \"label\": \"Title for the comments icon\",\n        \"importance\": \"low\",\n        \"default\": \"Show comments\"\n      },\n      {\n        \"name\": \"printTitle\",\n        \"type\": \"text\",\n        \"label\": \"Title for print button\",\n        \"importance\": \"low\",\n        \"default\": \"Print\"\n      },\n      {\n        \"name\": \"printIngress\",\n        \"type\": \"text\",\n        \"label\": \"Print dialog ingress\",\n        \"importance\": \"low\",\n        \"default\": \"How would you like to print this presentation?\"\n      },\n      {\n        \"name\": \"printAllSlides\",\n        \"type\": \"text\",\n        \"label\": \"Label for \\\"Print all slides\\\" button\",\n        \"importance\": \"low\",\n        \"default\": \"Print all slides\"\n      },\n      {\n        \"name\": \"printCurrentSlide\",\n        \"type\": \"text\",\n        \"label\": \"Label for \\\"Print current slide\\\" button\",\n        \"importance\": \"low\",\n        \"default\": \"Print current slide\"\n      },\n      {\n        \"name\": \"noTitle\",\n        \"type\": \"text\",\n        \"label\": \"Label for slides without a title\",\n        \"importance\": \"low\",\n        \"default\": \"No title\"\n      },\n      {\n        \"name\": \"accessibilitySlideNavigationExplanation\",\n        \"type\": \"text\",\n        \"label\": \"Explanation of slide navigation for assistive technologies\",\n        \"importance\": \"low\",\n        \"default\": \"Use left and right arrow to change slide in that direction whenever canvas is selected.\"\n      },\n      {\n        \"name\": \"accessibilityCanvasLabel\",\n        \"type\": \"text\",\n        \"label\": \"Canvas label for assistive technologies\",\n        \"importance\": \"low\",\n        \"default\": \"Presentation canvas. Use left and right arrow to move between slides.\"\n      },\n      {\n        \"name\": \"containsNotCompleted\",\n        \"type\": \"text\",\n        \"label\": \"Label for uncompleted interactions\",\n        \"importance\": \"low\",\n        \"default\": \"@slideName contains not completed interaction\"\n      },\n      {\n        \"name\": \"containsCompleted\",\n        \"type\": \"text\",\n        \"label\": \"Label for completed interactions\",\n        \"importance\": \"low\",\n        \"default\": \"@slideName contains completed interaction\"\n      },\n      {\n        \"name\": \"slideCount\",\n        \"type\": \"text\",\n        \"label\": \"Label for slide counter. Variables are @index, @total\",\n        \"importance\": \"low\",\n        \"default\": \"Slide @index of @total\"\n      },\n      {\n        \"name\": \"containsOnlyCorrect\",\n        \"type\": \"text\",\n        \"label\": \"Label for slides that only contains correct answers\",\n        \"importance\": \"low\",\n        \"default\": \"@slideName only has correct answers\"\n      },\n      {\n        \"name\": \"containsIncorrectAnswers\",\n        \"type\": \"text\",\n        \"label\": \"Label for slides that has incorrect answers\",\n        \"importance\": \"low\",\n        \"default\": \"@slideName has incorrect answers\"\n      },\n      {\n        \"name\": \"shareResult\",\n        \"type\": \"text\",\n        \"label\": \"Label for social sharing bar\",\n        \"importance\": \"low\",\n        \"default\": \"Share Result\"\n      },\n      {\n        \"name\": \"accessibilityTotalScore\",\n        \"type\": \"text\",\n        \"label\": \"Total score announcement for assistive technologies\",\n        \"default\": \"You got @score of @maxScore points in total\",\n        \"description\": \"Available variables are @score and @maxScore\"\n      },\n      {\n        \"name\": \"accessibilityEnteredFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Entered fullscreen announcement for assistive technologies\",\n        \"default\": \"Entered fullscreen\"\n      },\n      {\n        \"name\": \"accessibilityExitedFullscreen\",\n        \"type\": \"text\",\n        \"label\": \"Exited fullscreen announcement for assistive technologies\",\n        \"default\": \"Exited fullscreen\"\n      }\n    ]\n  },\n  {\n    \"name\": \"override\",\n    \"type\": \"group\",\n    \"label\": \"Behaviour settings.\",\n    \"importance\": \"low\",\n    \"description\": \"These options will let you override behaviour settings.\",\n    \"optional\": true,\n    \"fields\": [\n      {\n        \"name\": \"activeSurface\",\n        \"type\": \"boolean\",\n        \"widget\": \"disposableBoolean\",\n        \"label\": \"Activate Active Surface Mode\",\n        \"importance\": \"low\",\n        \"description\": \"Removes navigation controls for the end user. Use Go To Slide to navigate.\",\n        \"default\": false\n      },\n      {\n        \"name\": \"hideSummarySlide\",\n        \"type\": \"boolean\",\n        \"label\": \"Hide Summary Slide\",\n        \"importance\": \"low\",\n        \"description\": \"Hides the summary slide.\",\n        \"default\": false\n      },\n      {\n        \"name\": \"showSolutionButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Show Solution\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Show Solution\\\" button will be configured for each question individually (default) shown for all questions (Enabled) or disabled for all questions (Disabled) \",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"retryButton\",\n        \"type\": \"select\",\n        \"label\": \"Override \\\"Retry\\\" button\",\n        \"importance\": \"low\",\n        \"description\": \"This option determines if the \\\"Retry\\\" button will be configured for each question individually (default) shown for all questions (Enabled) or disabled for all questions (Disabled)\",\n        \"optional\": true,\n        \"options\": [\n          {\n            \"value\": \"on\",\n            \"label\": \"Enabled\"\n          },\n          {\n            \"value\": \"off\",\n            \"label\": \"Disabled\"\n          }\n        ]\n      },\n      {\n        \"name\": \"summarySlideSolutionButton\",\n        \"type\": \"boolean\",\n        \"label\": \"Show \\\"Show solution\\\" button in the summary slide\",\n        \"description\": \"If enabled, the learner will be able to show the solutions for all question when they reach the summary slide\",\n        \"default\": true,\n        \"importance\": \"low\",\n        \"widget\": \"showWhen\",\n        \"showWhen\": {\n          \"rules\": [\n            {\n              \"field\": \"hideSummarySlide\",\n              \"equals\": false\n            }\n          ]\n        }\n      },\n      {\n        \"name\": \"summarySlideRetryButton\",\n        \"type\": \"boolean\",\n        \"label\": \"Show \\\"Retry\\\" button in the summary slide\",\n        \"description\": \"If enabled, the learner will be able to retry all questions when they reach the summary slide. Be advised that by refreshing the page the learners will be able to retry even if this button isn't showing.\",\n        \"default\": true,\n        \"importance\": \"low\",\n        \"widget\": \"showWhen\",\n        \"showWhen\": {\n          \"rules\": [\n            {\n              \"field\": \"hideSummarySlide\",\n              \"equals\": false\n            }\n          ]\n        }\n      },\n      {\n        \"name\": \"enablePrintButton\",\n        \"type\": \"boolean\",\n        \"label\": \"Enable print button\",\n        \"importance\": \"low\",\n        \"description\": \"Enables the print button.\",\n        \"default\": false\n      },\n      {\n        \"name\": \"social\",\n        \"type\": \"group\",\n        \"label\": \"Social Settings\",\n        \"widget\": \"showWhen\",\n        \"showWhen\": {\n          \"rules\": [\n            {\n              \"field\": \"hideSummarySlide\",\n              \"equals\": false\n            }\n          ]\n        },\n        \"importance\": \"low\",\n        \"description\": \"These options will let you override social behaviour settings. Empty values will be filled in automatically if a link is provided, otherwise all values will be generated.\",\n        \"optional\": true,\n        \"fields\": [\n          {\n            \"name\": \"showFacebookShare\",\n            \"type\": \"boolean\",\n            \"label\": \"Display Facebook share icon\",\n            \"importance\": \"low\",\n            \"default\": false\n          },\n          {\n            \"name\": \"facebookShare\",\n            \"importance\": \"low\",\n            \"type\": \"group\",\n            \"expanded\": true,\n            \"label\": \"Facebook share settings\",\n            \"widget\": \"showWhen\",\n            \"showWhen\": {\n              \"rules\": [\n                {\n                  \"field\": \"showFacebookShare\",\n                  \"equals\": true\n                }\n              ]\n            },\n            \"fields\": [\n              {\n                \"name\": \"url\",\n                \"type\": \"text\",\n                \"label\": \"Share to Facebook link\",\n                \"importance\": \"low\",\n                \"default\": \"@currentpageurl\"\n              },\n              {\n                \"name\": \"quote\",\n                \"type\": \"text\",\n                \"label\": \"Share to Facebook quote\",\n                \"importance\": \"low\",\n                \"default\": \"I scored @score out of @maxScore on a task at @currentpageurl.\"\n              }\n            ]\n          },\n          {\n            \"name\": \"showTwitterShare\",\n            \"type\": \"boolean\",\n            \"label\": \"Display Twitter share icon\",\n            \"importance\": \"low\",\n            \"default\": false\n          },\n          {\n            \"name\": \"twitterShare\",\n            \"importance\": \"low\",\n            \"type\": \"group\",\n            \"expanded\": true,\n            \"label\": \"Twitter share settings\",\n            \"widget\": \"showWhen\",\n            \"showWhen\": {\n              \"rules\": [\n                {\n                  \"field\": \"showTwitterShare\",\n                  \"equals\": true\n                }\n              ]\n            },\n            \"fields\": [\n              {\n                \"name\": \"statement\",\n                \"type\": \"text\",\n                \"label\": \"Share to Twitter statement\",\n                \"importance\": \"low\",\n                \"default\": \"I scored @score out of @maxScore on a task at @currentpageurl.\"\n              },\n              {\n                \"name\": \"url\",\n                \"type\": \"text\",\n                \"label\": \"Share to Twitter link\",\n                \"importance\": \"low\",\n                \"default\": \"@currentpageurl\"\n              },\n              {\n                \"name\": \"hashtags\",\n                \"type\": \"text\",\n                \"label\": \"Share to Twitter hashtags\",\n                \"importance\": \"low\",\n                \"default\": \"h5p, course\"\n              }\n            ]\n          },\n          {\n            \"name\": \"showGoogleShare\",\n            \"type\": \"boolean\",\n            \"label\": \"Display Google+ share icon\",\n            \"importance\": \"low\",\n            \"default\": false\n          },\n          {\n            \"name\": \"googleShareUrl\",\n            \"type\": \"text\",\n            \"label\": \"Share to Google link\",\n            \"importance\": \"low\",\n            \"default\": \"@currentpageurl\",\n            \"widget\": \"showWhen\",\n            \"showWhen\": {\n              \"rules\": [\n                {\n                  \"field\": \"showGoogleShare\",\n                  \"equals\": true\n                }\n              ]\n            }\n          }\n        ]\n      }\n    ]\n  }\n]",
                "tutorial_url": "",
                "has_icon": 1
            }
        },
        "library_name": "H5P.CoursePresentation",
        "major_version": 1,
        "minor_version": 22,
        "user_name": {
            "id": 3,
            "name": "Abby tester test",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2022-06-14T09:32:00.000000Z",
            "first_name": "Abby tester",
            "last_name": "test",
            "organization_name": "Curriki",
            "job_title": "PM",
            "address": null,
            "phone_number": "4543543543",
            "organization_type": "K-12",
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0ARrdaM-BKypS4SFslL_n_LjqfIhQkoZjsLbi7YVPNSIjlIYfxRsB_B-0cCObtILu5Cereaa1GrVVO-1U0O3v6rgVaqfqq9n3jJM8cZueVYGSJxhhCtGMnWoZ5Ni9Exi2uVxC9rXR17T1p-NgWwUddYZInBO8Fk0\",\"scope\":\"email profile https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.courses openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/classroom.rosters.readonly\",\"login_hint\":\"AJDLj6IhjPEjK-HinFn0-xSdbBgjitIliFKMmP0IT37J-BCTcA7-DF5lesECWi3460LMx3a9xrFCjvBSgPqjknqtmIdAXn5G9LXjf_CP3rxipnDlrfmpZzU\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc0ODNhMDg4ZDRmZmMwMDYwOWYwZTIyZjNjMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2MjM0MTAzNzYwNjM5NzYzMzA1IiwiZW1haWwiOiJmYWhhZC5jdXJyaWtpQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiTkZ6dFR2ZnNDdUNTMG5aQmRzZDlyUSIsIm5hbWUiOiJGYWhhZCBGYXJydWtoIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FBVFhBSnlfSkxxMTZfRnlSSTJEQTdxdEdyc21uZHIyVHdwUG1BMUhYbVY4PXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkZhaGFkIiwiZmFtaWx5X25hbWUiOiJGYXJydWtoIiwibG9jYWxlIjoiZW4iLCJpYXQiOjE2NTQ4MjYyMTgsImV4cCI6MTY1NDgyOTgxOCwianRpIjoiNmM3ZGZhMmYwZDllYTA4ZDNjNzY2ZjJlMTU4MmYxODI5ZjRkMjQxNSJ9.UHc3Hy2rdm190fGbjFjkAoulIYvlAYSaUa6EALqB32mr2ZO4RVxY85nKxeN1GxqXySgCdtNMfmBnRmr7JO7t4qMipuIHCCNLFd3rbh9QJ9z5HuK08gxgKT1IWgfEqzjA9nqX59TDY-3yK41gbIzUR2buXUdIM6EpA9lYW11-gh053wUdKk0zwmgeTRpiJ1qttRV3C50E53mzC61T2bLk56kLXiQPHx6C9LwFoTYtqJq5COILD3Tzg29XXldE7zKszDRUEJFMT9_GvFNsjfJTGv7dPhzxiLeOCs0cjbpJuGyFaYaRyOYvILqDjJH9wYF8KbalnhN9g-HOXDNZk0nphA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1654826218249,\"expires_at\":1654829817249,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "user_id": 3,
        "source_type": null,
        "source_url": null,
        "created_at": "2022-06-10T01:49:20.000000Z",
        "updated_at": "2022-06-10T01:58:23.000000Z",
        "organization_visibility_type_id": 4
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/detail

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of a independent activity

H5P Independent Activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/3/h5p" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/3/h5p"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/3/h5p',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "independent-activity": {
        "id": 1,
        "title": "Taurus 10 Jun 2022 edited",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 7,
        "thumb_url": "https://images.pexels.com/photos/420233/pexels-photo-420233.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "subject_id": null,
        "education_level_id": null,
        "h5p": {
            "settings": {
                "baseUrl": "https://dev.currikistudio.org/api",
                "url": "https://dev.currikistudio.org/api/storage/h5p",
                "postUserStatistics": true,
                "ajax": {
                    "setFinished": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/finish",
                    "contentUserData": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/content-user-data?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
                },
                "saveFreq": 7,
                "siteUrl": "https://dev.currikistudio.org/api",
                "l10n": {
                    "H5P": {
                        "fullscreen": "Fullscreen",
                        "disableFullscreen": "Disable fullscreen",
                        "download": "Download",
                        "copyrights": "Rights of use",
                        "embed": "Embed",
                        "reuseDescription": "Reuse this content.",
                        "size": "Size",
                        "showAdvanced": "Show advanced",
                        "hideAdvanced": "Hide advanced",
                        "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                        "copyrightInformation": "Rights of use",
                        "close": "Close",
                        "title": "Title",
                        "author": "Author",
                        "year": "Year",
                        "source": "Source",
                        "license": "License",
                        "thumbnail": "Thumbnail",
                        "noCopyrights": "No copyright information available for this content.",
                        "downloadDescription": "Download this content as a H5P file.",
                        "copyrightsDescription": "View copyright information for this content.",
                        "embedDescription": "View the embed code for this content.",
                        "h5pDescription": "Visit H5P.org to check out more cool content.",
                        "contentChanged": "This content has changed since you last used it.",
                        "startingOver": "You'll be starting over.",
                        "confirmDialogHeader": "Confirm action",
                        "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                        "cancelLabel": "Cancel",
                        "confirmLabel": "Confirm",
                        "reuse": "Reuse",
                        "reuseContent": "Reuse Content"
                    }
                },
                "hubIsEnabled": false,
                "reportingIsEnabled": true,
                "user": {
                    "name": "Abby tester test",
                    "mail": "abby@curriki.org"
                },
                "editor": {
                    "filesPath": "https://dev.currikistudio.org/api/storage/h5p/editor",
                    "fileIcon": {
                        "path": "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                        "width": 50,
                        "height": 50
                    },
                    "ajaxPath": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/",
                    "libraryUrl": "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/",
                    "copyrightSemantics": {
                        "name": "copyright",
                        "type": "group",
                        "label": "Copyright information",
                        "fields": [
                            {
                                "name": "title",
                                "type": "text",
                                "label": "Title",
                                "placeholder": "La Gioconda",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Author",
                                "placeholder": "Leonardo da Vinci",
                                "optional": true
                            },
                            {
                                "name": "year",
                                "type": "text",
                                "label": "Year(s)",
                                "placeholder": "1503 - 1517",
                                "optional": true
                            },
                            {
                                "name": "source",
                                "type": "text",
                                "label": "Source",
                                "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                                "optional": true,
                                "regexp": {
                                    "pattern": "^http[s]?://.+",
                                    "modifiers": "i"
                                }
                            },
                            {
                                "name": "license",
                                "type": "select",
                                "label": "License",
                                "default": "U",
                                "options": [
                                    {
                                        "value": "U",
                                        "label": "Undisclosed"
                                    },
                                    {
                                        "value": "CC BY",
                                        "label": "Attribution",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-SA",
                                        "label": "Attribution-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-ND",
                                        "label": "Attribution-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC",
                                        "label": "Attribution-NonCommercial",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-SA",
                                        "label": "Attribution-NonCommercial-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-ND",
                                        "label": "Attribution-NonCommercial-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "GNU GPL",
                                        "label": "General Public License",
                                        "versions": [
                                            {
                                                "value": "v3",
                                                "label": "Version 3"
                                            },
                                            {
                                                "value": "v2",
                                                "label": "Version 2"
                                            },
                                            {
                                                "value": "v1",
                                                "label": "Version 1"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "PD",
                                        "label": "Public Domain",
                                        "versions": [
                                            {
                                                "value": "-",
                                                "label": "-"
                                            },
                                            {
                                                "value": "CC0 1.0",
                                                "label": "CC0 1.0 Universal"
                                            },
                                            {
                                                "value": "CC PDM",
                                                "label": "Public Domain Mark"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "C",
                                        "label": "Copyright"
                                    }
                                ]
                            },
                            {
                                "name": "version",
                                "type": "select",
                                "label": "License Version",
                                "options": []
                            }
                        ]
                    },
                    "metadataSemantics": [
                        {
                            "name": "title",
                            "type": "text",
                            "label": "Title",
                            "placeholder": "La Gioconda"
                        },
                        {
                            "name": "license",
                            "type": "select",
                            "label": "License",
                            "default": "U",
                            "options": [
                                {
                                    "value": "U",
                                    "label": "Undisclosed"
                                },
                                {
                                    "type": "optgroup",
                                    "label": "Creative Commons",
                                    "options": [
                                        {
                                            "value": "CC BY",
                                            "label": "Attribution (CC BY)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-SA",
                                            "label": "Attribution-ShareAlike (CC BY-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-ND",
                                            "label": "Attribution-NoDerivs (CC BY-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC",
                                            "label": "Attribution-NonCommercial (CC BY-NC)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-SA",
                                            "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-ND",
                                            "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC0 1.0",
                                            "label": "Public Domain Dedication (CC0)"
                                        },
                                        {
                                            "value": "CC PDM",
                                            "label": "Public Domain Mark (PDM)"
                                        }
                                    ]
                                },
                                {
                                    "value": "GNU GPL",
                                    "label": "General Public License v3"
                                },
                                {
                                    "value": "PD",
                                    "label": "Public Domain"
                                },
                                {
                                    "value": "ODC PDDL",
                                    "label": "Public Domain Dedication and Licence"
                                },
                                {
                                    "value": "C",
                                    "label": "Copyright"
                                }
                            ]
                        },
                        {
                            "name": "licenseVersion",
                            "type": "select",
                            "label": "License Version",
                            "options": [
                                {
                                    "value": "4.0",
                                    "label": "4.0 International"
                                },
                                {
                                    "value": "3.0",
                                    "label": "3.0 Unported"
                                },
                                {
                                    "value": "2.5",
                                    "label": "2.5 Generic"
                                },
                                {
                                    "value": "2.0",
                                    "label": "2.0 Generic"
                                },
                                {
                                    "value": "1.0",
                                    "label": "1.0 Generic"
                                }
                            ],
                            "optional": true
                        },
                        {
                            "name": "yearFrom",
                            "type": "number",
                            "label": "Years (from)",
                            "placeholder": "1991",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "yearTo",
                            "type": "number",
                            "label": "Years (to)",
                            "placeholder": "1992",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "type": "text",
                            "label": "Source",
                            "placeholder": "https://",
                            "optional": true
                        },
                        {
                            "name": "authors",
                            "type": "list",
                            "field": {
                                "name": "author",
                                "type": "group",
                                "fields": [
                                    {
                                        "label": "Author's name",
                                        "name": "name",
                                        "optional": true,
                                        "type": "text"
                                    },
                                    {
                                        "name": "role",
                                        "type": "select",
                                        "label": "Author's role",
                                        "default": "Author",
                                        "options": [
                                            {
                                                "value": "Author",
                                                "label": "Author"
                                            },
                                            {
                                                "value": "Editor",
                                                "label": "Editor"
                                            },
                                            {
                                                "value": "Licensee",
                                                "label": "Licensee"
                                            },
                                            {
                                                "value": "Originator",
                                                "label": "Originator"
                                            }
                                        ]
                                    }
                                ]
                            }
                        },
                        {
                            "name": "licenseExtras",
                            "type": "text",
                            "widget": "textarea",
                            "label": "License Extras",
                            "optional": true,
                            "description": "Any additional information about the license"
                        },
                        {
                            "name": "changes",
                            "type": "list",
                            "field": {
                                "name": "change",
                                "type": "group",
                                "label": "Changelog",
                                "fields": [
                                    {
                                        "name": "date",
                                        "type": "text",
                                        "label": "Date",
                                        "optional": true
                                    },
                                    {
                                        "name": "author",
                                        "type": "text",
                                        "label": "Changed by",
                                        "optional": true
                                    },
                                    {
                                        "name": "log",
                                        "type": "text",
                                        "widget": "textarea",
                                        "label": "Description of change",
                                        "placeholder": "Photo cropped, text changed, etc.",
                                        "optional": true
                                    }
                                ]
                            }
                        },
                        {
                            "name": "authorComments",
                            "type": "text",
                            "widget": "textarea",
                            "label": "Author comments",
                            "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                            "optional": true
                        },
                        {
                            "name": "contentType",
                            "type": "text",
                            "widget": "none"
                        },
                        {
                            "name": "defaultLanguage",
                            "type": "text",
                            "widget": "none"
                        }
                    ],
                    "assets": {
                        "css": [
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                        ],
                        "js": [
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                        ]
                    },
                    "deleteMessage": "laravel-h5p.content.destoryed",
                    "apiVersion": {
                        "majorVersion": 1,
                        "minorVersion": 24
                    }
                },
                "loadedJs": [],
                "loadedCss": [],
                "core": {
                    "styles": [
                        "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
                    ],
                    "scripts": [
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                        "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
                    ]
                },
                "contents": {
                    "cid-54166": {
                        "library": "H5P.CoursePresentation 1.22",
                        "jsonContent": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
                        "fullScreen": 1,
                        "exportUrl": "https://dev.currikistudio.org/api/api/v1/h5p/export/54166",
                        "embedCode": "<iframe src=\"https://dev.currikistudio.org/h5p/embed/54166\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                        "resizeCode": "<script src=\"https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                        "url": "http://dev.currikistudio.org/h5p/embed/54166",
                        "title": "Taurus 10 Jun 2022",
                        "displayOptions": {
                            "frame": true,
                            "export": true,
                            "embed": true,
                            "copyright": false,
                            "icon": true,
                            "copy": false
                        },
                        "contentUserData": [
                            {
                                "state": "{}"
                            }
                        ],
                        "metadata": {
                            "title": "Taurus 10 Jun 2022",
                            "license": "U"
                        },
                        "scripts": [
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.AdvancedText-1.1/text.js?ver=1.1.11",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Tether-1.0/scripts/tether.min.js?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.CoursePresentation-1.22/dist/h5p-course-presentation.js?ver=1.22.2"
                        ],
                        "styles": [
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.AdvancedText-1.1/text.css?ver=1.1.11",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Tether-1.0/styles/tether.min.css?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.CoursePresentation-1.22/dist/h5p-course-presentation.css?ver=1.22.2"
                        ]
                    }
                }
            },
            "user": {
                "id": 3,
                "name": "Abby tester test",
                "email": "abby@curriki.org"
            },
            "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-54166\" class=\"h5p-iframe\" data-content-id=\"54166\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
        },
        "created_at": "2022-06-10T01:49:20.000000Z",
        "updated_at": "2022-06-10T01:58:23.000000Z"
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/h5p

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of an independent activity

Share Independent Activity

Share the specified independent activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/14/share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/14/share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/14/share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to share independent activity."
    ]
}
 

Example response (200):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/share

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of a independent activity

Remove Share Independent Activity

Remove share the specified independent activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/14/remove-share" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/14/remove-share"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/14/remove-share',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to remove share independent activity."
    ]
}
 

Example response (200):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/remove-share

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of a independent activity

Get Independent Activity Search Preview

Get the specified independent activity search preview.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/independent-activities/1/search-preview" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/1/search-preview"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/1/search-preview',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "h5p": {
        "id": 54166,
        "title": "Taurus 10 Jun 2022",
        "params": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "slug": "taurus-10-jun-2022",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 22,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Taurus 10 Jun 2022",
            "license": "U"
        },
        "library": {
            "id": 160,
            "name": "H5P.CoursePresentation",
            "majorVersion": 1,
            "minorVersion": 22,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "independent-activity": {
        "id": 1,
        "title": "Taurus 10 Jun 2022 edited",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 7,
        "thumb_url": "https://images.pexels.com/photos/420233/pexels-photo-420233.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "created_at": "2022-06-10T01:49:20.000000Z",
        "updated_at": "2022-06-10T01:58:23.000000Z",
        "gcr_activity_visibility": true,
        "subjects": [],
        "education_levels": [],
        "author_tags": [],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": 4,
        "status": 2,
        "status_text": "FINISHED",
        "indexing": 3,
        "indexing_text": "APPROVED",
        "user": {
            "id": 3,
            "name": "Abby tester test",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2022-06-14T09:32:00.000000Z",
            "first_name": "Abby tester",
            "last_name": "test",
            "organization_name": "Curriki",
            "job_title": "PM",
            "address": null,
            "phone_number": "4543543543",
            "organization_type": "K-12",
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0ARrdaM-BKypS4SFslL_n_LjqfIhQkoZjsLbi7YVPNSIjlIYfxRsB_B-0cCObtILu5Cereaa1GrVVO-1U0O3v6rgVaqfqq9n3jJM8cZueVYGSJxhhCtGMnWoZ5Ni9Exi2uVxC9rXR17T1p-NgWwUddYZInBO8Fk0\",\"scope\":\"email profile https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.courses openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/classroom.rosters.readonly\",\"login_hint\":\"AJDLj6IhjPEjK-HinFn0-xSdbBgjitIliFKMmP0IT37J-BCTcA7-DF5lesECWi3460LMx3a9xrFCjvBSgPqjknqtmIdAXn5G9LXjf_CP3rxipnDlrfmpZzU\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc0ODNhMDg4ZDRmZmMwMDYwOWYwZTIyZjNjMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2MjM0MTAzNzYwNjM5NzYzMzA1IiwiZW1haWwiOiJmYWhhZC5jdXJyaWtpQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiTkZ6dFR2ZnNDdUNTMG5aQmRzZDlyUSIsIm5hbWUiOiJGYWhhZCBGYXJydWtoIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FBVFhBSnlfSkxxMTZfRnlSSTJEQTdxdEdyc21uZHIyVHdwUG1BMUhYbVY4PXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkZhaGFkIiwiZmFtaWx5X25hbWUiOiJGYXJydWtoIiwibG9jYWxlIjoiZW4iLCJpYXQiOjE2NTQ4MjYyMTgsImV4cCI6MTY1NDgyOTgxOCwianRpIjoiNmM3ZGZhMmYwZDllYTA4ZDNjNzY2ZjJlMTU4MmYxODI5ZjRkMjQxNSJ9.UHc3Hy2rdm190fGbjFjkAoulIYvlAYSaUa6EALqB32mr2ZO4RVxY85nKxeN1GxqXySgCdtNMfmBnRmr7JO7t4qMipuIHCCNLFd3rbh9QJ9z5HuK08gxgKT1IWgfEqzjA9nqX59TDY-3yK41gbIzUR2buXUdIM6EpA9lYW11-gh053wUdKk0zwmgeTRpiJ1qttRV3C50E53mzC61T2bLk56kLXiQPHx6C9LwFoTYtqJq5COILD3Tzg29XXldE7zKszDRUEJFMT9_GvFNsjfJTGv7dPhzxiLeOCs0cjbpJuGyFaYaRyOYvILqDjJH9wYF8KbalnhN9g-HOXDNZk0nphA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1654826218249,\"expires_at\":1654829817249,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": {
            "id": 54166,
            "created_at": "2022-06-10T01:49:20.000000Z",
            "updated_at": "2022-06-10T01:49:20.000000Z",
            "user_id": 1,
            "title": "Taurus 10 Jun 2022",
            "library_id": 160,
            "parameters": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "slug": "taurus-10-jun-2022",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        }
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/independent-activities/{independent_activity_id}/search-preview

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

independent_activity_id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of an independent activity

Clone Independent Activity

Clone the specified independent activity of an suborganization.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/19/clone" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/19/clone"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/19/clone',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Independent Activity is being cloned|duplicated in background!"
}
 

Example response (400):


{
    "errors": [
        "Not a Public Independent Activity."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to clone independent activity."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/{independent_activity_id}/clone

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

independent_activity_id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent activity

Export Independent Activity

Export the specified activity of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/18/export" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/18/export"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/18/export',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Your request to export independent Activity [title] has been received and is being processed."
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/{independent_activity_id}/export

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

independent_activity_id  integer  

The ID of the independent activity.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent_activity

Import Independent Activity

Import the specified independent activity of a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/import" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"independent_activity\": \"amet\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/import"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "independent_activity": "amet"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/import',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'independent_activity' => 'amet',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Your request to import independent activity has been received and is being processed."
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/import

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

independent_activity  string  

Copy Independent Activity into Playlist

Clone the specified independent activity of an suborganization and link with a playlist.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/14/playlist/186/copy-to-playlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/14/playlist/186/copy-to-playlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/14/playlist/186/copy-to-playlist',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Independent Activity is being copied in background!"
}
 

Example response (400):


{
    "errors": [
        "Not a Public Independent Activity."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to copy independent activity."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/{independent_activity_id}/playlist/{playlist_id}/copy-to-playlist

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

independent_activity_id  integer  

The ID of the independent activity.

playlist_id  integer  

The ID of the playlist.

suborganization  string  

The Id of a suborganization

independent_activity  string  

The Id of a independent activity

playlist  string  

The Id of a playlist

Move Independent Activity into Playlist

Move the specified independent activity of an suborganization and link with a playlist.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/playlist/186/move-to-playlist" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"independentActivityIds\": [
        1,
        2
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/playlist/186/move-to-playlist"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "independentActivityIds": [
        1,
        2
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/playlist/186/move-to-playlist',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'independentActivityIds' => [
                1,
                2,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Your request to add independent activity into playlist [playlistTitle] has been received and is being processed.<br> You will be alerted in the notification section in the title bar when complete."
}
 

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "independentActivityIds.0": [
            "Activities that are moving to projects should have share disabled and library preference should be private."
        ]
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/playlist/{playlist_id}/move-to-playlist

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

playlist_id  integer  

The ID of the playlist.

suborganization  string  

The Id of a suborganization

playlist  string  

The Id of a playlist

Body Parameters

independentActivityIds  string[] optional  

The Ids of independent activities

Copy Activity into Independent Activity

Copy the specified activity of an suborganization into an independent activity.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/activity/761/copy-to-independent-activity" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/independent-activities/activity/761/copy-to-independent-activity"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/independent-activities/activity/761/copy-to-independent-activity',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Your request to copy activity [activity->title] into independent activity has been received and is being processed.<br> You will be alerted in the notification section in the title bar when completed."
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/independent-activities/activity/{activity_id}/copy-to-independent-activity

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

activity_id  integer  

The ID of the activity.

suborganization  string  

The Id of a suborganization

activity  string  

The Id of a activity

GET api/v1/independent-activities/{id}/h5p-activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/15/h5p-activity" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/15/h5p-activity"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/15/h5p-activity',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/independent-activities/{id}/h5p-activity

URL Parameters

id  integer  

The ID of the independent activity.

Get All Organization Independent Activities

Get a list of the independent activities of an organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/independent-activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"Video\",
    \"indexing\": \"0\",
    \"shared\": true,
    \"created_from\": \"2022-12-01\",
    \"created_to\": \"2022-12-01\",
    \"updated_from\": \"2022-12-01\",
    \"updated_to\": \"2022-12-01\",
    \"author_id\": 15,
    \"order_by_column\": \"title\",
    \"order_by_type\": \"asc\",
    \"size\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/independent-activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "Video",
    "indexing": "0",
    "shared": true,
    "created_from": "2022-12-01",
    "created_to": "2022-12-01",
    "updated_from": "2022-12-01",
    "updated_to": "2022-12-01",
    "author_id": 15,
    "order_by_column": "title",
    "order_by_type": "asc",
    "size": 10
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'Video',
            'indexing' => '0',
            'shared' => true,
            'created_from' => '2022-12-01',
            'created_to' => '2022-12-01',
            'updated_from' => '2022-12-01',
            'updated_to' => '2022-12-01',
            'author_id' => 15,
            'order_by_column' => 'title',
            'order_by_type' => 'asc',
            'size' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "title": "title",
            "type": "h5p",
            "content": "place_holder",
            "description": null,
            "shared": false,
            "order": 0,
            "thumb_url": null,
            "created_at": "2022-04-28T01:03:22.000000Z",
            "updated_at": "2022-04-28T01:03:22.000000Z",
            "gcr_activity_visibility": false,
            "subjects": [
                {
                    "id": 1,
                    "name": "Arts",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-21T12:41:25.000000Z",
                    "updated_at": null
                }
            ],
            "education_levels": [
                {
                    "id": 1,
                    "name": "Preschool (Ages 0-4)",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-20T17:33:20.000000Z",
                    "updated_at": null
                }
            ],
            "author_tags": [
                {
                    "id": 1,
                    "name": "Homework/Assignment",
                    "order": null,
                    "organization_id": 63,
                    "created_at": "2022-04-20T17:38:02.000000Z",
                    "updated_at": null
                }
            ],
            "source_type": null,
            "source_url": null,
            "organization_visibility_type_id": 1,
            "status": 1,
            "status_text": "DRAFT",
            "indexing": null,
            "indexing_text": "NOT REQUESTED",
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2021-05-03T19:24:58.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "h5p_content": null
        },
        {
            "id": 6,
            "title": "title",
            "type": "h5p",
            "content": "place_holder",
            "description": null,
            "shared": false,
            "order": 1,
            "thumb_url": null,
            "created_at": "2022-04-28T00:33:33.000000Z",
            "updated_at": "2022-05-19T12:16:05.000000Z",
            "gcr_activity_visibility": false,
            "subjects": [],
            "education_levels": [],
            "author_tags": [],
            "source_type": null,
            "source_url": null,
            "organization_visibility_type_id": 4,
            "status": 2,
            "status_text": "FINISHED",
            "indexing": 1,
            "indexing_text": "REQUESTED",
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2021-05-03T19:24:58.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "h5p_content": null
        }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/independent-activities

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Query to search independent activity against

indexing  string optional  

Must be one of 0, 1, 2, or 3.

shared  boolean optional  

created_from  string optional  

Must be a valid date in the format Y-m-d.

created_to  string optional  

Must be a valid date in the format Y-m-d.

updated_from  string optional  

Must be a valid date in the format Y-m-d.

updated_to  string optional  

Must be a valid date in the format Y-m-d.

author_id  integer optional  

order_by_column  string optional  

To sort data with specific column

order_by_type  string optional  

To sort data in ascending or descending order

size  integer optional  

Size to show per page records

Independent Activity Indexing

Modify the index value of an independent activity.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/2/indexes/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/2/indexes/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/2/indexes/3',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Library status changed successfully!",
}
 

Example response (500):


{
    "errors": [
        "Invalid index value provided."
    ]
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/indexes/{index}

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

index  string  

New Integer Index Value, 1 => 'REQUESTED', 2 => 'NOT APPROVED', 3 => 'APPROVED'.

independent_activity  string  

The Id of a independent_activity

Download XApi File

This is an API for to download the XAPI zip for the attempted independent activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/independent_activity/getxapifile/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/go/independent_activity/getxapifile/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/independent_activity/getxapifile/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for type bigint: \"facere\" (SQL: select * from \"activities\" where \"id\" = facere and \"activities\".\"deleted_at\" is null and \"activity_type\" = INDEPENDENT limit 1)",
    "exception": "Illuminate\\Database\\QueryException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
    "line": 712,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 672,
            "function": "runQueryCallback",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 376,
            "function": "run",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2414,
            "function": "select",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2402,
            "function": "runSelect",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2936,
            "function": "Illuminate\\Database\\Query\\{closure}",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2403,
            "function": "onceWithColumns",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Builder.php",
            "line": 625,
            "function": "get",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Builder.php",
            "line": 609,
            "function": "getModels",
            "class": "Illuminate\\Database\\Eloquent\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Concerns\\BuildsQueries.php",
            "line": 294,
            "function": "get",
            "class": "Illuminate\\Database\\Eloquent\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php",
            "line": 1880,
            "function": "first",
            "class": "Illuminate\\Database\\Eloquent\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ImplicitRouteBinding.php",
            "line": 55,
            "function": "resolveRouteBinding",
            "class": "Illuminate\\Database\\Eloquent\\Model",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 859,
            "function": "resolveForRoute",
            "class": "Illuminate\\Routing\\ImplicitRouteBinding",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php",
            "line": 41,
            "function": "substituteImplicitBindings",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/go/independent_activity/getxapifile/{independent_activity_id}

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

id, title, slug of an independent_activity

Get H5P Resource Settings (Shared)

Get H5P Resource Settings for a shared independent activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/3/h5p-resource-settings-shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/3/h5p-resource-settings-shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/3/h5p-resource-settings-shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Independent Activity not found."
    ]
}
 

Example response (200):


{
    "h5p": {
        "id": 54166,
        "title": "Taurus 10 Jun 2022",
        "params": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "slug": "taurus-10-jun-2022",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 22,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Taurus 10 Jun 2022",
            "license": "U"
        },
        "library": {
            "id": 160,
            "name": "H5P.CoursePresentation",
            "majorVersion": 1,
            "minorVersion": 22,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "independent-activity": {
        "id": 1,
        "title": "Taurus 10 Jun 2022 edited",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 7,
        "thumb_url": "https://images.pexels.com/photos/420233/pexels-photo-420233.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "created_at": "2022-06-10T01:49:20.000000Z",
        "updated_at": "2022-06-10T01:58:23.000000Z",
        "gcr_activity_visibility": true,
        "subjects": [],
        "education_levels": [],
        "author_tags": [],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": 4,
        "status": 2,
        "status_text": "FINISHED",
        "indexing": 3,
        "indexing_text": "APPROVED",
        "user": {
            "id": 3,
            "name": "Abby tester test",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2022-06-14T09:32:00.000000Z",
            "first_name": "Abby tester",
            "last_name": "test",
            "organization_name": "Curriki",
            "job_title": "PM",
            "address": null,
            "phone_number": "4543543543",
            "organization_type": "K-12",
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0ARrdaM-BKypS4SFslL_n_LjqfIhQkoZjsLbi7YVPNSIjlIYfxRsB_B-0cCObtILu5Cereaa1GrVVO-1U0O3v6rgVaqfqq9n3jJM8cZueVYGSJxhhCtGMnWoZ5Ni9Exi2uVxC9rXR17T1p-NgWwUddYZInBO8Fk0\",\"scope\":\"email profile https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.courses openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/classroom.rosters.readonly\",\"login_hint\":\"AJDLj6IhjPEjK-HinFn0-xSdbBgjitIliFKMmP0IT37J-BCTcA7-DF5lesECWi3460LMx3a9xrFCjvBSgPqjknqtmIdAXn5G9LXjf_CP3rxipnDlrfmpZzU\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc0ODNhMDg4ZDRmZmMwMDYwOWYwZTIyZjNjMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2MjM0MTAzNzYwNjM5NzYzMzA1IiwiZW1haWwiOiJmYWhhZC5jdXJyaWtpQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiTkZ6dFR2ZnNDdUNTMG5aQmRzZDlyUSIsIm5hbWUiOiJGYWhhZCBGYXJydWtoIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FBVFhBSnlfSkxxMTZfRnlSSTJEQTdxdEdyc21uZHIyVHdwUG1BMUhYbVY4PXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkZhaGFkIiwiZmFtaWx5X25hbWUiOiJGYXJydWtoIiwibG9jYWxlIjoiZW4iLCJpYXQiOjE2NTQ4MjYyMTgsImV4cCI6MTY1NDgyOTgxOCwianRpIjoiNmM3ZGZhMmYwZDllYTA4ZDNjNzY2ZjJlMTU4MmYxODI5ZjRkMjQxNSJ9.UHc3Hy2rdm190fGbjFjkAoulIYvlAYSaUa6EALqB32mr2ZO4RVxY85nKxeN1GxqXySgCdtNMfmBnRmr7JO7t4qMipuIHCCNLFd3rbh9QJ9z5HuK08gxgKT1IWgfEqzjA9nqX59TDY-3yK41gbIzUR2buXUdIM6EpA9lYW11-gh053wUdKk0zwmgeTRpiJ1qttRV3C50E53mzC61T2bLk56kLXiQPHx6C9LwFoTYtqJq5COILD3Tzg29XXldE7zKszDRUEJFMT9_GvFNsjfJTGv7dPhzxiLeOCs0cjbpJuGyFaYaRyOYvILqDjJH9wYF8KbalnhN9g-HOXDNZk0nphA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1654826218249,\"expires_at\":1654829817249,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": {
            "id": 54166,
            "created_at": "2022-06-10T01:49:20.000000Z",
            "updated_at": "2022-06-10T01:49:20.000000Z",
            "user_id": 1,
            "title": "Taurus 10 Jun 2022",
            "library_id": 160,
            "parameters": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "slug": "taurus-10-jun-2022",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        }
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/h5p-resource-settings-shared

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of an independent activity

Get H5P Resource Settings

Get H5P Resource Settings for an independent activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/independent-activities/7/h5p-resource-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/independent-activities/7/h5p-resource-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/independent-activities/7/h5p-resource-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Independent Activity doesn't belong to this user."
    ]
}
 

Example response (200):


{
    "h5p": {
        "id": 54166,
        "title": "Taurus 10 Jun 2022",
        "params": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
        "slug": "taurus-10-jun-2022",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 22,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Taurus 10 Jun 2022",
            "license": "U"
        },
        "library": {
            "id": 160,
            "name": "H5P.CoursePresentation",
            "majorVersion": 1,
            "minorVersion": 22,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "independent-activity": {
        "id": 1,
        "title": "Taurus 10 Jun 2022 edited",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 7,
        "thumb_url": "https://images.pexels.com/photos/420233/pexels-photo-420233.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "created_at": "2022-06-10T01:49:20.000000Z",
        "updated_at": "2022-06-10T01:58:23.000000Z",
        "gcr_activity_visibility": true,
        "subjects": [],
        "education_levels": [],
        "author_tags": [],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": 4,
        "status": 2,
        "status_text": "FINISHED",
        "indexing": 3,
        "indexing_text": "APPROVED",
        "user": {
            "id": 3,
            "name": "Abby tester test",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2022-06-14T09:32:00.000000Z",
            "first_name": "Abby tester",
            "last_name": "test",
            "organization_name": "Curriki",
            "job_title": "PM",
            "address": null,
            "phone_number": "4543543543",
            "organization_type": "K-12",
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0ARrdaM-BKypS4SFslL_n_LjqfIhQkoZjsLbi7YVPNSIjlIYfxRsB_B-0cCObtILu5Cereaa1GrVVO-1U0O3v6rgVaqfqq9n3jJM8cZueVYGSJxhhCtGMnWoZ5Ni9Exi2uVxC9rXR17T1p-NgWwUddYZInBO8Fk0\",\"scope\":\"email profile https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/classroom.courses.readonly https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.courses openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/classroom.rosters.readonly\",\"login_hint\":\"AJDLj6IhjPEjK-HinFn0-xSdbBgjitIliFKMmP0IT37J-BCTcA7-DF5lesECWi3460LMx3a9xrFCjvBSgPqjknqtmIdAXn5G9LXjf_CP3rxipnDlrfmpZzU\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc0ODNhMDg4ZDRmZmMwMDYwOWYwZTIyZjNjMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2MjM0MTAzNzYwNjM5NzYzMzA1IiwiZW1haWwiOiJmYWhhZC5jdXJyaWtpQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiTkZ6dFR2ZnNDdUNTMG5aQmRzZDlyUSIsIm5hbWUiOiJGYWhhZCBGYXJydWtoIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FBVFhBSnlfSkxxMTZfRnlSSTJEQTdxdEdyc21uZHIyVHdwUG1BMUhYbVY4PXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkZhaGFkIiwiZmFtaWx5X25hbWUiOiJGYXJydWtoIiwibG9jYWxlIjoiZW4iLCJpYXQiOjE2NTQ4MjYyMTgsImV4cCI6MTY1NDgyOTgxOCwianRpIjoiNmM3ZGZhMmYwZDllYTA4ZDNjNzY2ZjJlMTU4MmYxODI5ZjRkMjQxNSJ9.UHc3Hy2rdm190fGbjFjkAoulIYvlAYSaUa6EALqB32mr2ZO4RVxY85nKxeN1GxqXySgCdtNMfmBnRmr7JO7t4qMipuIHCCNLFd3rbh9QJ9z5HuK08gxgKT1IWgfEqzjA9nqX59TDY-3yK41gbIzUR2buXUdIM6EpA9lYW11-gh053wUdKk0zwmgeTRpiJ1qttRV3C50E53mzC61T2bLk56kLXiQPHx6C9LwFoTYtqJq5COILD3Tzg29XXldE7zKszDRUEJFMT9_GvFNsjfJTGv7dPhzxiLeOCs0cjbpJuGyFaYaRyOYvILqDjJH9wYF8KbalnhN9g-HOXDNZk0nphA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1654826218249,\"expires_at\":1654829817249,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": {
            "id": 54166,
            "created_at": "2022-06-10T01:49:20.000000Z",
            "updated_at": "2022-06-10T01:49:20.000000Z",
            "user_id": 1,
            "title": "Taurus 10 Jun 2022",
            "library_id": 160,
            "parameters": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"keywords\":[],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "filtered": "{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":29.956427015250547,\"y\":29.999999999999996,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Taurus 10 Jun 2022<\\/p>\\n\"},\"subContentId\":\"efa0c7bc-871b-4f2f-a79f-1ff2f3a3a88e\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Taurus 10 Jun 2022\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"I scored @score out of @maxScore on a task at @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"I scored @score out of @maxScore on a task at @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"Slide\",\"score\":\"Score\",\"yourScore\":\"Your Score\",\"maxScore\":\"Max Score\",\"total\":\"Total\",\"totalScore\":\"Total Score\",\"showSolutions\":\"Show solutions\",\"retry\":\"Retry\",\"exportAnswers\":\"Export text\",\"hideKeywords\":\"Hide sidebar navigation menu\",\"showKeywords\":\"Show sidebar navigation menu\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\",\"prevSlide\":\"Previous slide\",\"nextSlide\":\"Next slide\",\"currentSlide\":\"Current slide\",\"lastSlide\":\"Last slide\",\"solutionModeTitle\":\"Exit solution mode\",\"solutionModeText\":\"Solution Mode\",\"summaryMultipleTaskText\":\"Multiple tasks\",\"scoreMessage\":\"You achieved:\",\"shareFacebook\":\"Share on Facebook\",\"shareTwitter\":\"Share on Twitter\",\"shareGoogle\":\"Share on Google+\",\"summary\":\"Summary\",\"solutionsButtonTitle\":\"Show comments\",\"printTitle\":\"Print\",\"printIngress\":\"How would you like to print this presentation?\",\"printAllSlides\":\"Print all slides\",\"printCurrentSlide\":\"Print current slide\",\"noTitle\":\"No title\",\"accessibilitySlideNavigationExplanation\":\"Use left and right arrow to change slide in that direction whenever canvas is selected.\",\"accessibilityCanvasLabel\":\"Presentation canvas. Use left and right arrow to move between slides.\",\"containsNotCompleted\":\"@slideName contains not completed interaction\",\"containsCompleted\":\"@slideName contains completed interaction\",\"slideCount\":\"Slide @index of @total\",\"containsOnlyCorrect\":\"@slideName only has correct answers\",\"containsIncorrectAnswers\":\"@slideName has incorrect answers\",\"shareResult\":\"Share Result\",\"accessibilityTotalScore\":\"You got @score of @maxScore points in total\",\"accessibilityEnteredFullscreen\":\"Entered fullscreen\",\"accessibilityExitedFullscreen\":\"Exited fullscreen\"}}",
            "slug": "taurus-10-jun-2022",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        }
    }
}
 

Request      

GET api/v1/independent-activities/{independent_activity_id}/h5p-resource-settings

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  string  

The Id of an independent activity

7. Activity Layout

APIs for activity layout management

Get Activity Layouts

Get a list of the activity layouts.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/activity-layouts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"tvjixitskfnifbkjfeladibtpjbgquahdcikwtgpdifjjgzvatcdyskpusypvteqnlysuv\",
    \"size\": 8,
    \"order_by_column\": \"order\",
    \"order_by_type\": \"desc\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "tvjixitskfnifbkjfeladibtpjbgquahdcikwtgpdifjjgzvatcdyskpusypvteqnlysuv",
    "size": 8,
    "order_by_column": "order",
    "order_by_type": "desc"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/activity-layouts',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'tvjixitskfnifbkjfeladibtpjbgquahdcikwtgpdifjjgzvatcdyskpusypvteqnlysuv',
            'size' => 8,
            'order_by_column' => 'order',
            'order_by_type' => 'desc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 2,
            "title": "Layout Two",
            "description": "test",
            "order": null,
            "type": "h5p",
            "h5pLib": "test",
            "image": "/storage/activity-layouts/BmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "demo_activity_id": "1",
            "demo_video_id": "1",
            "organization_id": "1",
            "created_at": "2022-02-09T10:22:42.000000Z",
            "updated_at": "2022-02-09T10:22:42.000000Z"
        },
        {
            "id": 1,
            "title": "Layout One",
            "description": "test",
            "order": null,
            "type": "h5p",
            "h5pLib": "test",
            "image": "/storage/activity-layouts/BmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "demo_activity_id": "1",
            "demo_video_id": "1",
            "organization_id": "1",
            "created_at": "2022-02-09T09:46:28.000000Z",
            "updated_at": "2022-02-09T10:24:52.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/activity-layouts?page=1",
        "last": "http://localhost:8000/api/v1/activity-layouts?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/activity-layouts",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/activity-layouts

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Must not be greater than 255 characters.

size  integer optional  

order_by_column  string optional  

Must be one of title or order.

order_by_type  string optional  

Must be one of asc or desc.

Create Activity Layout

Create a new activity layout.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Audio\",
    \"description\": \"incidunt\",
    \"order\": 1,
    \"type\": \"incidunt\",
    \"h5pLib\": \"deleniti\",
    \"image\": \"dolorem\",
    \"demo_activity_id\": \"nulla\",
    \"demo_video_id\": \"distinctio\",
    \"organization_id\": 20
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Audio",
    "description": "incidunt",
    "order": 1,
    "type": "incidunt",
    "h5pLib": "deleniti",
    "image": "dolorem",
    "demo_activity_id": "nulla",
    "demo_video_id": "distinctio",
    "organization_id": 20
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/activity-layouts',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Audio',
            'description' => 'incidunt',
            'order' => 1,
            'type' => 'incidunt',
            'h5pLib' => 'deleniti',
            'image' => 'dolorem',
            'demo_activity_id' => 'nulla',
            'demo_video_id' => 'distinctio',
            'organization_id' => 20,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid activity type id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Could not create activity layout. Please try again later."
    ]
}
 

Example response (201):


{
    "activityLayout": {
        "id": 1,
        "title": "Layout One",
        "description": "test",
        "order": null,
        "type": "h5p",
        "h5pLib": "test",
        "image": "/storage/activity-layouts/BmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
        "demo_activity_id": "1",
        "demo_video_id": "1",
        "organization_id": "1",
        "created_at": "2022-02-09T09:46:28.000000Z",
        "updated_at": "2022-02-09T10:24:52.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/activity-layouts

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

title  string  

Activity Item Title.

description  string  

order  integer  

At what order it should appear.

type  string  

h5pLib  string  

image  image  

Valid Image.

demo_activity_id  string  

demo_video_id  string  

organization_id  integer  

Get Activity Item

Get the specified activity layout.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityLayout": {
        "id": 1,
        "title": "Layout One",
        "description": "test",
        "order": null,
        "type": "h5p",
        "h5pLib": "test",
        "image": "/storage/activity-layouts/BmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
        "demo_activity_id": "1",
        "demo_video_id": "1",
        "organization_id": "1",
        "created_at": "2022-02-09T09:46:28.000000Z",
        "updated_at": "2022-02-09T10:24:52.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/activity-layouts/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity layout.

suborganization  string  

The Id of a organization

activityLayout  string  

The Id of a activity layout

Remove Activity Item

Remove the specified activity layout.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/activity-layouts/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity layout has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete activity layout."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/activity-layouts/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity layout.

suborganization  string  

The Id of a organization

activityLayout  string  

The Id of a activity layout

Upload Thumbnail

Upload thumbnail image for a activity layout

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/activity-layouts/upload-thumb" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "thumb=laudantium" \
    --form "image=@C:\Users\Administrator\AppData\Local\Temp\php4E34.tmp" 
const url = new URL(
    "http://localhost:8000/api/v1/activity-layouts/upload-thumb"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('thumb', 'laudantium');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/activity-layouts/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'thumb',
                'contents' => 'laudantium'
            ],
            [
                'name' => 'image',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php4E34.tmp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "image": "/storage/activity-layouts/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/activity-layouts/upload-thumb

Body Parameters

image  file  

Must be an image. Must not be greater than 102400 kilobytes.

thumb  image  

Thumbnail image

8. Activity Item

APIs for activity item management

Get Activity Items

Get a list of the activity items.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/quaerat/activity-items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/quaerat/activity-items"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/quaerat/activity-items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityItems": [
        {
            "id": 1,
            "title": "Audio Recorder",
            "description": "Record your voice and play back or download a .wav file of your recording.",
            "order": 1,
            "activityType": {
                "id": 1,
                "title": "Audio",
                "order": 0,
                "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
                "created_at": "2020-08-25T16:29:35.000000Z",
                "updated_at": "2020-08-25T16:29:35.000000Z"
            },
            "type": "h5p",
            "h5pLib": "H5P.AudioRecorder 1.0",
            "image": "/storage/activity-items/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
            "demo_activity_id": "768",
            "demo_video_id": "https://youtu.be/O73hIb7yxLg",
            "organization_id": 1,
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        },
        {
            "id": 2,
            "title": "Dictation",
            "description": "A tool to create dictation exercises",
            "order": 2,
            "activityType": {
                "id": 1,
                "title": "Audio",
                "order": 0,
                "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
                "created_at": "2020-08-25T16:29:35.000000Z",
                "updated_at": "2020-08-25T16:29:35.000000Z"
            },
            "type": "h5p",
            "h5pLib": "H5P.Dictation 1.0",
            "image": "/storage/activity-items/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "demo_activity_id": "760",
            "demo_video_id": "https://youtu.be/O73ikb7yxLg",
            "organization_id": 1,
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization}/activity-items

URL Parameters

suborganization  string  

The suborganization.

Create Activity Item

Create a new activity item.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/activity-items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Audio\",
    \"description\": \"debitis\",
    \"order\": 1,
    \"activity_type_id\": 9,
    \"type\": \"aliquid\",
    \"h5pLib\": \"quo\",
    \"image\": \"et\",
    \"demo_activity_id\": \"qui\",
    \"demo_video_id\": \"qui\",
    \"organization_id\": 11
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-items"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Audio",
    "description": "debitis",
    "order": 1,
    "activity_type_id": 9,
    "type": "aliquid",
    "h5pLib": "quo",
    "image": "et",
    "demo_activity_id": "qui",
    "demo_video_id": "qui",
    "organization_id": 11
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/activity-items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Audio',
            'description' => 'debitis',
            'order' => 1,
            'activity_type_id' => 9,
            'type' => 'aliquid',
            'h5pLib' => 'quo',
            'image' => 'et',
            'demo_activity_id' => 'qui',
            'demo_video_id' => 'qui',
            'organization_id' => 11,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid activity type id."
    ]
}
 

Example response (500):


{
    "errors": [
        "Could not create activity item. Please try again later."
    ]
}
 

Example response (201):


{
    "activityItem": {
        "id": 1,
        "title": "Audio Recorder",
        "description": "Record your voice and play back or download a .wav file of your recording.",
        "order": 1,
        "activityType": {
            "id": 1,
            "title": "Audio",
            "order": 0,
            "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        },
        "type": "h5p",
        "h5pLib": "H5P.AudioRecorder 1.0",
        "image": "/storage/activity-items/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
        "demo_activity_id": "768",
        "demo_video_id": "https://youtu.be/O73hIb7yxLg",
        "organization_id": 1,
        "created_at": "2020-08-25T16:29:35.000000Z",
        "updated_at": "2020-08-25T16:29:35.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/activity-items

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

title  string  

Activity Item Title.

description  string  

order  integer  

At what order it should appear.

activity_type_id  integer  

type  string  

h5pLib  string  

image  image  

Valid Image.

demo_activity_id  string  

demo_video_id  string  

organization_id  integer  

Get Activity Item

Get the specified activity item.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/activity-items/62" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-items/62"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/activity-items/62',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityItem": {
        "id": 1,
        "title": "Audio Recorder",
        "description": "Record your voice and play back or download a .wav file of your recording.",
        "order": 1,
        "activityType": {
            "id": 1,
            "title": "Audio",
            "order": 0,
            "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        },
        "type": "h5p",
        "h5pLib": "H5P.AudioRecorder 1.0",
        "image": "/storage/activity-items/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
        "demo_activity_id": "768",
        "demo_video_id": "https://youtu.be/O73hIb7yxLg",
        "organization_id": 1,
        "created_at": "2020-08-25T16:29:35.000000Z",
        "updated_at": "2020-08-25T16:29:35.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/activity-items/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity item.

suborganization  string  

The Id of a suborganization

activityItem  integer  

The Id of a activity item

Remove Activity Item

Remove the specified activity item.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/activity-items/62" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-items/62"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/activity-items/62',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity item has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete activity item."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/activity-items/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity item.

suborganization  string  

The Id of a suborganization

activityItem  string  

The Id of a activity item

Get Activity Items with pagination and search

Get a list of the activity items.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/get-activity-items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/get-activity-items"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/get-activity-items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityItems": [
        {
            "id": 1,
            "title": "Audio Recorder",
            "description": "Record your voice and play back or download a .wav file of your recording.",
            "order": 1,
            "activityType": {
                "id": 1,
                "title": "Audio",
                "order": 0,
                "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
                "created_at": "2020-08-25T16:29:35.000000Z",
                "updated_at": "2020-08-25T16:29:35.000000Z"
            },
            "type": "h5p",
            "h5pLib": "H5P.AudioRecorder 1.0",
            "image": "/storage/activity-items/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
            "demo_activity_id": "768",
            "demo_video_id": "https://youtu.be/O73hIb7yxLg",
            "organization_id": 1,
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        },
        {
            "id": 2,
            "title": "Dictation",
            "description": "A tool to create dictation exercises",
            "order": 2,
            "activityType": {
                "id": 1,
                "title": "Audio",
                "order": 0,
                "image": "/storage/activity-types/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
                "created_at": "2020-08-25T16:29:35.000000Z",
                "updated_at": "2020-08-25T16:29:35.000000Z"
            },
            "type": "h5p",
            "h5pLib": "H5P.Dictation 1.0",
            "image": "/storage/activity-items/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "demo_activity_id": "760",
            "demo_video_id": "https://youtu.be/O73ikb7yxLg",
            "organization_id": 1,
            "created_at": "2020-08-25T16:29:35.000000Z",
            "updated_at": "2020-08-25T16:29:35.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/get-activity-items

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Upload Thumbnail

Upload thumbnail image for a activity item

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/activity-items/upload-thumb" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "thumb=omnis" \
    --form "image=@C:\Users\Administrator\AppData\Local\Temp\php4E32.tmp" 
const url = new URL(
    "http://localhost:8000/api/v1/activity-items/upload-thumb"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('thumb', 'omnis');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/activity-items/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'thumb',
                'contents' => 'omnis'
            ],
            [
                'name' => 'image',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php4E32.tmp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/activity-items/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/activity-items/upload-thumb

Body Parameters

image  file  

Must be an image.

thumb  image  

Thumbnail image

9. Activity Type

APIs for activity type management

Get Activity Type Items

Get a list of activity items of the specified activity type.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activity-types/7/items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activity-types/7/items"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activity-types/7/items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityItems": [
        {
            "id": 52,
            "title": "Spoken Answers",
            "description": "Voice recognition activity that the learner can answered with their own voice.",
            "order": 3,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.SpeakTheWords 1.3",
            "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "769",
            "demo_video_id": "https://youtu.be/lgzsJDcMvPI"
        },
        {
            "id": 50,
            "title": "Audio Recorder",
            "description": "Record your voice and play back or download a .wav file of your recording.",
            "order": 1,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.AudioRecorder 1.0",
            "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "768",
            "demo_video_id": "https://youtu.be/O73hIb7yxLg"
        },
        {
            "id": 51,
            "title": "Dictation",
            "description": "A tool to create dictation exercises",
            "order": 2,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.Dictation 1.0",
            "image": "/storage/uploads/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "767",
            "demo_video_id": "https://youtu.be/JLYtQpB0JmY"
        }
    ]
}
 

Request      

GET api/v1/activity-types/{activityType_id}/items

URL Parameters

activityType_id  integer  

The ID of the activityType.

activityType  integer  

The Id of a activity type

Get Activity Types

Get a list of the activity types.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/activity-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/activity-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "activityTypes": [
        {
            "id": 7,
            "title": "Audio",
            "order": 0,
            "image": "/storage/uploads/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
            "organization_id": 1,
            "activityItems": [
                {
                    "id": 52,
                    "title": "Spoken Answers",
                    "description": "Voice recognition activity that the learner can answered with their own voice.",
                    "order": 3,
                    "activity_type_id": 7,
                    "type": "h5p",
                    "h5pLib": "H5P.SpeakTheWords 1.3",
                    "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "769",
                    "demo_video_id": "https://youtu.be/lgzsJDcMvPI",
                    "organization_id": 1
                },
                {
                    "id": 50,
                    "title": "Audio Recorder",
                    "description": "Record your voice and play back or download a .wav file of your recording.",
                    "order": 1,
                    "activity_type_id": 7,
                    "type": "h5p",
                    "h5pLib": "H5P.AudioRecorder 1.0",
                    "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "768",
                    "demo_video_id": "https://youtu.be/O73hIb7yxLg",
                    "organization_id": 1
                }
            ],
            "created_at": "2020-09-10T01:16:52.000000Z",
            "updated_at": "2020-09-10T01:16:52.000000Z"
        },
        {
            "id": 8,
            "title": "Informational",
            "order": 0,
            "image": "/storage/uploads/O8M6MvWrdtqrZSczhzzbTdCCDulrKxLJslYTzcwL.png",
            "activityItems": [
                {
                    "id": 54,
                    "title": "Dialog Cards",
                    "description": "Create great interactive language learning resources",
                    "order": 2,
                    "activity_type_id": 8,
                    "type": "h5p",
                    "h5pLib": "H5P.Dialogcards 1.8",
                    "image": "/storage/uploads/GPrWdvREEixWnQtKtTO0RsBY5cg0XznBoozygcy6.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-28T08:56:13.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "732",
                    "demo_video_id": "https://youtu.be/Fh5zrkWgAjk",
                    "organization_id": 1
                },
                {
                    "id": 57,
                    "title": "Summary",
                    "description": "Create challenges where the learner chooses statements to reach the correct conclusion.",
                    "order": 5,
                    "activity_type_id": 8,
                    "type": "h5p",
                    "h5pLib": "H5P.Summary 1.10",
                    "image": "/storage/uploads/rFvefEi5bNmj14yDW6WTnirkUm8TY3eu4PgKz1Gi.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "762",
                    "demo_video_id": "https://youtu.be/EuXbu4Y4EkU",
                    "organization_id": 1
                }
            ],
            "created_at": "2020-09-10T01:16:52.000000Z",
            "updated_at": "2020-09-10T01:16:52.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/activity-types

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Create Activity Type

Create a new activity type.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/activity-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Audio\",
    \"image\": \"soluta\",
    \"order\": 1,
    \"organization_id\": 6
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Audio",
    "image": "soluta",
    "order": 1,
    "organization_id": 6
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/activity-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Audio',
            'image' => 'soluta',
            'order' => 1,
            'organization_id' => 6,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create activity type. Please try again later."
    ]
}
 

Example response (200):


{
    "id": 7,
    "title": "Audio",
    "order": 0,
    "image": "/storage/uploads/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
    "organization_id": 1,
    "activityItems": [
        {
            "id": 52,
            "title": "Spoken Answers",
            "description": "Voice recognition activity that the learner can answered with their own voice.",
            "order": 3,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.SpeakTheWords 1.3",
            "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "769",
            "demo_video_id": "https://youtu.be/lgzsJDcMvPI"
        },
        {
            "id": 50,
            "title": "Audio Recorder",
            "description": "Record your voice and play back or download a .wav file of your recording.",
            "order": 1,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.AudioRecorder 1.0",
            "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "768",
            "demo_video_id": "https://youtu.be/O73hIb7yxLg",
            "organization_id": 1
        },
        {
            "id": 51,
            "title": "Dictation",
            "description": "A tool to create dictation exercises",
            "order": 2,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.Dictation 1.0",
            "image": "/storage/uploads/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "767",
            "demo_video_id": "https://youtu.be/JLYtQpB0JmY",
            "organization_id": 1
        }
    ],
    "created_at": "2020-09-10T01:16:52.000000Z",
    "updated_at": "2020-09-10T01:16:52.000000Z"
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/activity-types

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

title  string  

Activity Item Title.

image  image  

Valid Image.

order  integer  

At what order it should appear.

organization_id  integer  

Get Activity Type

Get the specified activity type.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/activity-types/7" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-types/7"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/activity-types/7',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 7,
    "title": "Audio",
    "order": 0,
    "image": "/storage/uploads/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
    "organization_id": 1,
    "activityItems": [
        {
            "id": 52,
            "title": "Spoken Answers",
            "description": "Voice recognition activity that the learner can answered with their own voice.",
            "order": 3,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.SpeakTheWords 1.3",
            "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "769",
            "demo_video_id": "https://youtu.be/lgzsJDcMvPI"
        },
        {
            "id": 50,
            "title": "Audio Recorder",
            "description": "Record your voice and play back or download a .wav file of your recording.",
            "order": 1,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.AudioRecorder 1.0",
            "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "768",
            "demo_video_id": "https://youtu.be/O73hIb7yxLg",
            "organization_id": 1
        },
        {
            "id": 51,
            "title": "Dictation",
            "description": "A tool to create dictation exercises",
            "order": 2,
            "activity_type_id": 7,
            "type": "h5p",
            "h5pLib": "H5P.Dictation 1.0",
            "image": "/storage/uploads/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z",
            "deleted_at": null,
            "demo_activity_id": "767",
            "demo_video_id": "https://youtu.be/JLYtQpB0JmY",
            "organization_id": 1
        }
    ],
    "created_at": "2020-09-10T01:16:52.000000Z",
    "updated_at": "2020-09-10T01:16:52.000000Z"
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/activity-types/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity type.

suborganization  string  

The Id of a suborganization

activityType  string  

The Id of a activity type

Remove Activity Type

Remove the specified activity type.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/activity-types/7" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/activity-types/7"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/activity-types/7',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity type has been deleted successfully."
}
 

Example response (500):


{
    "message": [
        "Failed to delete activity type."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/activity-types/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the activity type.

suborganization  string  

The Id of a suborganization

activityType  string  

The Id of a activity type

Upload Thumbnail

Upload thumbnail image for a activity type

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/activity-types/upload-thumb" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "thumb=nisi" \
    --form "image=@C:\Users\Administrator\AppData\Local\Temp\php4E20.tmp" 
const url = new URL(
    "http://localhost:8000/api/v1/activity-types/upload-thumb"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('thumb', 'nisi');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/activity-types/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'thumb',
                'contents' => 'nisi'
            ],
            [
                'name' => 'image',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php4E20.tmp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/activity-types/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/activity-types/upload-thumb

Body Parameters

image  file  

Must be an image.

thumb  image  

Thumbnail image

10. CurrikiGo

APIs for publishing playlists to other LMSs

Publish Playlist to Canvas

Publish the specified playlist to Canvas.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/canvas/projects/3024/playlists/186/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setting_id\": 1,
    \"counter\": 1,
    \"publisher_org\": 15,
    \"creation_type\": \"assignments\",
    \"canvas_course_id\": 8
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/canvas/projects/3024/playlists/186/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setting_id": 1,
    "counter": 1,
    "publisher_org": 15,
    "creation_type": "assignments",
    "canvas_course_id": 8
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/canvas/projects/3024/playlists/186/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setting_id' => 1,
            'counter' => 1,
            'publisher_org' => 15,
            'creation_type' => 'assignments',
            'canvas_course_id' => 8,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid project or playlist Id."
    ]
}
 

Example response (403):


{
    "errors": [
        "You are not authorized to perform this action."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to send playlist to canvas."
    ]
}
 

Example response (200):


{
    "playlist": {
        "id": 1,
        "title": "Development Setup",
        "position": 4,
        "type": "ExternalTool",
        "module_id": 26,
        "content_id": 0,
        "html_url": "https://canvas2.curriki.org/courses/32/modules/items/112",
        "url": "https://canvas2.curriki.org/api/v1/courses/32/external_tools/sessionless_launch?launch_type=module_item&module_item_id=112",
        "external_url": "https://tsugi.curriki.org/mod/curriki/?playlist=1",
        "new_tab": false,
        "completion_requirement": {
            "type": "must_view"
        },
        "published": false,
        "indent": 0
    }
}
 

Request      

POST api/v1/go/canvas/projects/{project_id}/playlists/{playlist_id}/publish

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

project  string  

The Id of the project

playlist  string  

The Id of the playlist

Body Parameters

setting_id  integer optional  

The Id of the LMS setting

counter  integer optional  

The counter for uniqueness of the title

publisher_org  integer optional  

creation_type  string  

Must be one of modules or assignments.

canvas_course_id  integer  

Publish Playlist to Moodle

Publish the specified playlist to Moodle.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/moodle/projects/3024/playlists/186/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setting_id\": 1,
    \"counter\": 1,
    \"publisher_org\": 18
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/moodle/projects/3024/playlists/186/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setting_id": 1,
    "counter": 1,
    "publisher_org": 18
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/moodle/projects/3024/playlists/186/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setting_id' => 1,
            'counter' => 1,
            'publisher_org' => 18,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Invalid project or playlist Id."
    ]
}
 

Example response (403):


{
    "errors": [
        "You are not authorized to perform this action."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to send playlist to Moodle."
    ]
}
 

Request      

POST api/v1/go/moodle/projects/{project_id}/playlists/{playlist_id}/publish

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

project  string  

The Id of the project

playlist  string  

The Id of the playlist

Body Parameters

setting_id  integer optional  

The Id of the LMS setting

counter  integer optional  

The counter for uniqueness of the title

publisher_org  integer optional  

POST api/v1/go/{lms}/projects/{project_id}/playlists/{playlist_id}/publish

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/dolore/projects/3024/playlists/186/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setting_id\": \"ut\",
    \"counter\": 9,
    \"publisher_org\": 7,
    \"creation_type\": \"assignments\",
    \"canvas_course_id\": 14
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/dolore/projects/3024/playlists/186/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setting_id": "ut",
    "counter": 9,
    "publisher_org": 7,
    "creation_type": "assignments",
    "canvas_course_id": 14
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/dolore/projects/3024/playlists/186/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setting_id' => 'ut',
            'counter' => 9,
            'publisher_org' => 7,
            'creation_type' => 'assignments',
            'canvas_course_id' => 14,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/go/{lms}/projects/{project_id}/playlists/{playlist_id}/publish

URL Parameters

lms  string  

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

Body Parameters

setting_id  string  

counter  integer optional  

publisher_org  integer optional  

creation_type  string  

Must be one of modules or assignments.

canvas_course_id  integer  

11. CurrikiGo Course

APIs for fetching courses from LMSs

Fetch a Course

Fetch a Course from Canvas

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/canvas/projects/3024/fetch" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setting_id\": 2
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/canvas/projects/3024/fetch"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setting_id": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/canvas/projects/3024/fetch',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setting_id' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Validation error"
    ]
}
 

Example response (403):


{
    "errors": [
        "You are not authorized to perform this action."
    ]
}
 

Example response (200):


{
    "project": {
        "course": "How to build a playlist in CurrikiStudio",
        "playlists": [
            "Playlist 1",
            "Playlist 2",
            "Playlist 3",
            "Playlist 4"
        ]
    }
}
 

Request      

POST api/v1/go/canvas/projects/{project_id}/fetch

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of the project Example 1

Body Parameters

setting_id  integer optional  

The Id of the LMS setting Example 1

Fetch a Course from Generic

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/atque/projects/3024/fetch" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setting_id\": \"dolor\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/atque/projects/3024/fetch"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setting_id": "dolor"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/atque/projects/3024/fetch',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setting_id' => 'dolor',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/go/{lms}/projects/{project_id}/fetch

URL Parameters

lms  string  

project_id  integer  

The ID of the project.

Body Parameters

setting_id  string  

12. H5P

APIs for H5P management

Create H5P Settings

Create H5P Settings in the database.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/settings

Get H5Ps

Get a list of the H5Ps.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p

Store H5P

Store H5P Content

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/h5p" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"cupiditate\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/h5p"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "action": "cupiditate"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/h5p',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'action' => 'cupiditate',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/h5p

Body Parameters

action  string  

Get H5P

Get the specified H5P

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "settings": {
        "baseUrl": "https://www.currikistudio.org/api",
        "url": "https://www.currikistudio.org/api/storage/h5p",
        "postUserStatistics": true,
        "ajax": {
            "setFinished": "https://www.currikistudio.org/api/api/h5p/ajax/url",
            "contentUserData": "https://www.currikistudio.org/api/api/h5p/ajax/content-user-data/?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
        },
        "saveFreq": false,
        "siteUrl": "https://www.currikistudio.org/api",
        "l10n": {
            "H5P": {
                "fullscreen": "Fullscreen",
                "disableFullscreen": "Disable fullscreen",
                "download": "Download",
                "copyrights": "Rights of use",
                "embed": "Embed",
                "reuseDescription": "Reuse this content.",
                "size": "Size",
                "showAdvanced": "Show advanced",
                "hideAdvanced": "Hide advanced",
                "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                "copyrightInformation": "Rights of use",
                "close": "Close",
                "title": "Title",
                "author": "Author",
                "year": "Year",
                "source": "Source",
                "license": "License",
                "thumbnail": "Thumbnail",
                "noCopyrights": "No copyright information available for this content.",
                "downloadDescription": "Download this content as a H5P file.",
                "copyrightsDescription": "View copyright information for this content.",
                "embedDescription": "View the embed code for this content.",
                "h5pDescription": "Visit H5P.org to check out more cool content.",
                "contentChanged": "This content has changed since you last used it.",
                "startingOver": "You'll be starting over.",
                "confirmDialogHeader": "Confirm action",
                "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                "cancelLabel": "Cancel",
                "confirmLabel": "Confirm",
                "reuse": "Reuse",
                "reuseContent": "Reuse Content"
            }
        },
        "hubIsEnabled": false,
        "user": {
            "name": "John Doe",
            "email": "john.doe@currikistudio.org"
        },
        "editor": {
            "filesPath": "https://www.currikistudio.org/api/storage/h5p/editor",
            "fileIcon": {
                "path": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                "width": 50,
                "height": 50
            },
            "ajaxPath": "https://www.currikistudio.org/api/api/v1/h5p/ajax/",
            "libraryUrl": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/",
            "copyrightSemantics": {
                "name": "copyright",
                "type": "group",
                "label": "Copyright information",
                "fields": [
                    {
                        "name": "title",
                        "type": "text",
                        "label": "Title",
                        "placeholder": "La Gioconda",
                        "optional": true
                    },
                    {
                        "name": "author",
                        "type": "text",
                        "label": "Author",
                        "placeholder": "Leonardo da Vinci",
                        "optional": true
                    },
                    {
                        "name": "year",
                        "type": "text",
                        "label": "Year(s)",
                        "placeholder": "1503 - 1517",
                        "optional": true
                    },
                    {
                        "name": "source",
                        "type": "text",
                        "label": "Source",
                        "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                        "optional": true,
                        "regexp": {
                            "pattern": "^http[s]?://.+",
                            "modifiers": "i"
                        }
                    },
                    {
                        "name": "license",
                        "type": "select",
                        "label": "License",
                        "default": "U",
                        "options": [
                            {
                                "value": "U",
                                "label": "Undisclosed"
                            },
                            {
                                "value": "CC BY",
                                "label": "Attribution",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-SA",
                                "label": "Attribution-ShareAlike",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-ND",
                                "label": "Attribution-NoDerivs",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC",
                                "label": "Attribution-NonCommercial",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC-SA",
                                "label": "Attribution-NonCommercial-ShareAlike",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC-ND",
                                "label": "Attribution-NonCommercial-NoDerivs",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "GNU GPL",
                                "label": "General Public License",
                                "versions": [
                                    {
                                        "value": "v3",
                                        "label": "Version 3"
                                    },
                                    {
                                        "value": "v2",
                                        "label": "Version 2"
                                    },
                                    {
                                        "value": "v1",
                                        "label": "Version 1"
                                    }
                                ]
                            },
                            {
                                "value": "PD",
                                "label": "Public Domain",
                                "versions": [
                                    {
                                        "value": "-",
                                        "label": "-"
                                    },
                                    {
                                        "value": "CC0 1.0",
                                        "label": "CC0 1.0 Universal"
                                    },
                                    {
                                        "value": "CC PDM",
                                        "label": "Public Domain Mark"
                                    }
                                ]
                            },
                            {
                                "value": "C",
                                "label": "Copyright"
                            }
                        ]
                    },
                    {
                        "name": "version",
                        "type": "select",
                        "label": "License Version",
                        "options": []
                    }
                ]
            },
            "metadataSemantics": [
                {
                    "name": "title",
                    "type": "text",
                    "label": "Title",
                    "placeholder": "La Gioconda"
                },
                {
                    "name": "license",
                    "type": "select",
                    "label": "License",
                    "default": "U",
                    "options": [
                        {
                            "value": "U",
                            "label": "Undisclosed"
                        },
                        {
                            "type": "optgroup",
                            "label": "Creative Commons",
                            "options": [
                                {
                                    "value": "CC BY",
                                    "label": "Attribution (CC BY)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-SA",
                                    "label": "Attribution-ShareAlike (CC BY-SA)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-ND",
                                    "label": "Attribution-NoDerivs (CC BY-ND)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC",
                                    "label": "Attribution-NonCommercial (CC BY-NC)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC-SA",
                                    "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC-ND",
                                    "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC0 1.0",
                                    "label": "Public Domain Dedication (CC0)"
                                },
                                {
                                    "value": "CC PDM",
                                    "label": "Public Domain Mark (PDM)"
                                }
                            ]
                        },
                        {
                            "value": "GNU GPL",
                            "label": "General Public License v3"
                        },
                        {
                            "value": "PD",
                            "label": "Public Domain"
                        },
                        {
                            "value": "ODC PDDL",
                            "label": "Public Domain Dedication and Licence"
                        },
                        {
                            "value": "C",
                            "label": "Copyright"
                        }
                    ]
                },
                {
                    "name": "licenseVersion",
                    "type": "select",
                    "label": "License Version",
                    "options": [
                        {
                            "value": "4.0",
                            "label": "4.0 International"
                        },
                        {
                            "value": "3.0",
                            "label": "3.0 Unported"
                        },
                        {
                            "value": "2.5",
                            "label": "2.5 Generic"
                        },
                        {
                            "value": "2.0",
                            "label": "2.0 Generic"
                        },
                        {
                            "value": "1.0",
                            "label": "1.0 Generic"
                        }
                    ],
                    "optional": true
                },
                {
                    "name": "yearFrom",
                    "type": "number",
                    "label": "Years (from)",
                    "placeholder": "1991",
                    "min": "-9999",
                    "max": "9999",
                    "optional": true
                },
                {
                    "name": "yearTo",
                    "type": "number",
                    "label": "Years (to)",
                    "placeholder": "1992",
                    "min": "-9999",
                    "max": "9999",
                    "optional": true
                },
                {
                    "name": "source",
                    "type": "text",
                    "label": "Source",
                    "placeholder": "https://",
                    "optional": true
                },
                {
                    "name": "authors",
                    "type": "list",
                    "field": {
                        "name": "author",
                        "type": "group",
                        "fields": [
                            {
                                "label": "Author's name",
                                "name": "name",
                                "optional": true,
                                "type": "text"
                            },
                            {
                                "name": "role",
                                "type": "select",
                                "label": "Author's role",
                                "default": "Author",
                                "options": [
                                    {
                                        "value": "Author",
                                        "label": "Author"
                                    },
                                    {
                                        "value": "Editor",
                                        "label": "Editor"
                                    },
                                    {
                                        "value": "Licensee",
                                        "label": "Licensee"
                                    },
                                    {
                                        "value": "Originator",
                                        "label": "Originator"
                                    }
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "licenseExtras",
                    "type": "text",
                    "widget": "textarea",
                    "label": "License Extras",
                    "optional": true,
                    "description": "Any additional information about the license"
                },
                {
                    "name": "changes",
                    "type": "list",
                    "field": {
                        "name": "change",
                        "type": "group",
                        "label": "Changelog",
                        "fields": [
                            {
                                "name": "date",
                                "type": "text",
                                "label": "Date",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Changed by",
                                "optional": true
                            },
                            {
                                "name": "log",
                                "type": "text",
                                "widget": "textarea",
                                "label": "Description of change",
                                "placeholder": "Photo cropped, text changed, etc.",
                                "optional": true
                            }
                        ]
                    }
                },
                {
                    "name": "authorComments",
                    "type": "text",
                    "widget": "textarea",
                    "label": "Author comments",
                    "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                    "optional": true
                },
                {
                    "name": "contentType",
                    "type": "text",
                    "widget": "none"
                },
                {
                    "name": "defaultLanguage",
                    "type": "text",
                    "widget": "none"
                }
            ],
            "assets": {
                "css": [
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                ],
                "js": [
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                ]
            },
            "deleteMessage": "laravel-h5p.content.destoryed",
            "apiVersion": {
                "majorVersion": 1,
                "minorVersion": 24
            }
        },
        "loadedJs": [],
        "loadedCss": [],
        "core": {
            "styles": [
                "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
            ],
            "scripts": [
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
            ]
        },
        "contents": {
            "cid-1021": {
                "library": "H5P.InteractiveVideo 1.21",
                "jsonContent": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcF8MxUj2Q0\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"df95f6d4-a3c9-4fc0-b97c-f3107649b7af\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"cb5b149b-fa96-498d-ab54-1f153716dc1e\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "fullScreen": 1,
                "exportUrl": "https://www.currikistudio.org/api/h5p/export/1021",
                "embedCode": "<iframe src=\"https://www.currikistudio.org/h5p/embed/1021\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                "resizeCode": "<script src=\"https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                "url": "https://www.currikistudio.org/api/h5p/embed/1021",
                "title": "Tips and Tricks for Creating Projects in CurrikiStudio",
                "displayOptions": {
                    "frame": false,
                    "export": true,
                    "embed": true,
                    "copyright": false,
                    "icon": true,
                    "copy": false
                },
                "contentUserData": [
                    {
                        "state": "{}"
                    }
                ],
                "scripts": [
                    "https://www.currikistudio.org/api/storage/h5p/libraries/flowplayer-1.0/scripts/flowplayer-3.2.12.min.js?ver=1.0.5",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/question.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/explainer.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/score-points.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/stop-watch.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/xapi-event-builder.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/summary.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNDrop-1.1/drag-n-drop.js?ver=1.1.5",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.js?ver=1.2.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/context-menu.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/dialog.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-element.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-form-manager.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.js?ver=1.10.19",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/youtube.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/panopto.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/html5.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/flash.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/video.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.js?ver=1.21.9"
                ],
                "styles": [
                    "https://www.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/question.css?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/explainer.css?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/css/summary.css?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.css?ver=1.2.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/dialog.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/context-menu.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar-form-manager.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.css?ver=1.10.19",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/styles/video.css?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.css?ver=1.21.9"
                ]
            }
        }
    },
    "user": {
        "created_at": "2020-09-06T19:21:08.000000Z",
        "description": "test a test",
        "id": 1779,
        "is_public": false,
        "name": "Amar",
        "shared": true,
        "starter_project": null,
        "thumb_url": "https://photo.excel.com/photos/2233112/photo-2233112.jpeg",
        "updated_at": "2020-09-07T16:31:52.000000Z"
    },
    "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-1021\" class=\"h5p-iframe\" data-content-id=\"1021\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
}
 

Request      

GET api/v1/h5p/{id}

URL Parameters

id  string  

The Id of a H5p

Update H5P

Update the specified H5P

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/h5p/a" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"illo\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/a"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "action": "illo"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/h5p/a',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'action' => 'illo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": "Content updated.",
    "id": 5
}
 

Example response (400):


{
    "fail": "Can not update."
}
 

Request      

PUT api/v1/h5p/{id}

PATCH api/v1/h5p/{id}

URL Parameters

id  string  

The Id of a H5p Example 5

Body Parameters

action  string  

Remove H5P

Remove the specified H5P

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/h5p/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/h5p/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/h5p/{id}

URL Parameters

id  string  

The Id of a H5P

GET api/v1/h5p/ajax/content-user-data

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/content-user-data" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/content-user-data"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/content-user-data',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/content-user-data

POST api/v1/h5p/ajax/content-user-data

PUT api/v1/h5p/ajax/content-user-data

PATCH api/v1/h5p/ajax/content-user-data

DELETE api/v1/h5p/ajax/content-user-data

OPTIONS api/v1/h5p/ajax/content-user-data

Get H5P Independent Activity

Get H5P based on Independent Activity

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/independent-activity/8/visibility/voluptatem" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/independent-activity/8/visibility/voluptatem"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/independent-activity/8/visibility/voluptatem',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "independent_h5p_activity": {
        "id": 22,
        "title": "Taurus 17 Jun 2022",
        "type": "h5p",
        "content": "place_holder",
        "description": null,
        "shared": false,
        "order": 0,
        "thumb_url": "https://images.pexels.com/photos/162258/cow-cattle-animal-bull-162258.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
        "subject_id": null,
        "education_level_id": null,
        "h5p": {
            "settings": {
                "baseUrl": "https://dev.currikistudio.org/api",
                "url": "https://dev.currikistudio.org/api/storage/h5p",
                "postUserStatistics": false,
                "ajax": {
                    "setFinished": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/finish",
                    "contentUserData": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/content-user-data?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
                },
                "saveFreq": 7,
                "siteUrl": "https://dev.currikistudio.org/api",
                "l10n": {
                    "H5P": {
                        "fullscreen": "Fullscreen",
                        "disableFullscreen": "Disable fullscreen",
                        "download": "Download",
                        "copyrights": "Rights of use",
                        "embed": "Embed",
                        "reuseDescription": "Reuse this content.",
                        "size": "Size",
                        "showAdvanced": "Show advanced",
                        "hideAdvanced": "Hide advanced",
                        "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                        "copyrightInformation": "Rights of use",
                        "close": "Close",
                        "title": "Title",
                        "author": "Author",
                        "year": "Year",
                        "source": "Source",
                        "license": "License",
                        "thumbnail": "Thumbnail",
                        "noCopyrights": "No copyright information available for this content.",
                        "downloadDescription": "Download this content as a H5P file.",
                        "copyrightsDescription": "View copyright information for this content.",
                        "embedDescription": "View the embed code for this content.",
                        "h5pDescription": "Visit H5P.org to check out more cool content.",
                        "contentChanged": "This content has changed since you last used it.",
                        "startingOver": "You'll be starting over.",
                        "confirmDialogHeader": "Confirm action",
                        "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                        "cancelLabel": "Cancel",
                        "confirmLabel": "Confirm",
                        "reuse": "Reuse",
                        "reuseContent": "Reuse Content"
                    }
                },
                "hubIsEnabled": false,
                "reportingIsEnabled": true,
                "editor": {
                    "filesPath": "https://dev.currikistudio.org/api/storage/h5p/editor",
                    "fileIcon": {
                        "path": "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                        "width": 50,
                        "height": 50
                    },
                    "ajaxPath": "https://dev.currikistudio.org/api/api/v1/h5p/ajax/",
                    "libraryUrl": "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/",
                    "copyrightSemantics": {
                        "name": "copyright",
                        "type": "group",
                        "label": "Copyright information",
                        "fields": [
                            {
                                "name": "title",
                                "type": "text",
                                "label": "Title",
                                "placeholder": "La Gioconda",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Author",
                                "placeholder": "Leonardo da Vinci",
                                "optional": true
                            },
                            {
                                "name": "year",
                                "type": "text",
                                "label": "Year(s)",
                                "placeholder": "1503 - 1517",
                                "optional": true
                            },
                            {
                                "name": "source",
                                "type": "text",
                                "label": "Source",
                                "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                                "optional": true,
                                "regexp": {
                                    "pattern": "^http[s]?://.+",
                                    "modifiers": "i"
                                }
                            },
                            {
                                "name": "license",
                                "type": "select",
                                "label": "License",
                                "default": "U",
                                "options": [
                                    {
                                        "value": "U",
                                        "label": "Undisclosed"
                                    },
                                    {
                                        "value": "CC BY",
                                        "label": "Attribution",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-SA",
                                        "label": "Attribution-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-ND",
                                        "label": "Attribution-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC",
                                        "label": "Attribution-NonCommercial",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-SA",
                                        "label": "Attribution-NonCommercial-ShareAlike",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "CC BY-NC-ND",
                                        "label": "Attribution-NonCommercial-NoDerivs",
                                        "versions": [
                                            {
                                                "value": "4.0",
                                                "label": "4.0 International"
                                            },
                                            {
                                                "value": "3.0",
                                                "label": "3.0 Unported"
                                            },
                                            {
                                                "value": "2.5",
                                                "label": "2.5 Generic"
                                            },
                                            {
                                                "value": "2.0",
                                                "label": "2.0 Generic"
                                            },
                                            {
                                                "value": "1.0",
                                                "label": "1.0 Generic"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "GNU GPL",
                                        "label": "General Public License",
                                        "versions": [
                                            {
                                                "value": "v3",
                                                "label": "Version 3"
                                            },
                                            {
                                                "value": "v2",
                                                "label": "Version 2"
                                            },
                                            {
                                                "value": "v1",
                                                "label": "Version 1"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "PD",
                                        "label": "Public Domain",
                                        "versions": [
                                            {
                                                "value": "-",
                                                "label": "-"
                                            },
                                            {
                                                "value": "CC0 1.0",
                                                "label": "CC0 1.0 Universal"
                                            },
                                            {
                                                "value": "CC PDM",
                                                "label": "Public Domain Mark"
                                            }
                                        ]
                                    },
                                    {
                                        "value": "C",
                                        "label": "Copyright"
                                    }
                                ]
                            },
                            {
                                "name": "version",
                                "type": "select",
                                "label": "License Version",
                                "options": []
                            }
                        ]
                    },
                    "metadataSemantics": [
                        {
                            "name": "title",
                            "type": "text",
                            "label": "Title",
                            "placeholder": "La Gioconda"
                        },
                        {
                            "name": "license",
                            "type": "select",
                            "label": "License",
                            "default": "U",
                            "options": [
                                {
                                    "value": "U",
                                    "label": "Undisclosed"
                                },
                                {
                                    "type": "optgroup",
                                    "label": "Creative Commons",
                                    "options": [
                                        {
                                            "value": "CC BY",
                                            "label": "Attribution (CC BY)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-SA",
                                            "label": "Attribution-ShareAlike (CC BY-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-ND",
                                            "label": "Attribution-NoDerivs (CC BY-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC",
                                            "label": "Attribution-NonCommercial (CC BY-NC)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-SA",
                                            "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC BY-NC-ND",
                                            "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                            "versions": [
                                                {
                                                    "value": "4.0",
                                                    "label": "4.0 International"
                                                },
                                                {
                                                    "value": "3.0",
                                                    "label": "3.0 Unported"
                                                },
                                                {
                                                    "value": "2.5",
                                                    "label": "2.5 Generic"
                                                },
                                                {
                                                    "value": "2.0",
                                                    "label": "2.0 Generic"
                                                },
                                                {
                                                    "value": "1.0",
                                                    "label": "1.0 Generic"
                                                }
                                            ]
                                        },
                                        {
                                            "value": "CC0 1.0",
                                            "label": "Public Domain Dedication (CC0)"
                                        },
                                        {
                                            "value": "CC PDM",
                                            "label": "Public Domain Mark (PDM)"
                                        }
                                    ]
                                },
                                {
                                    "value": "GNU GPL",
                                    "label": "General Public License v3"
                                },
                                {
                                    "value": "PD",
                                    "label": "Public Domain"
                                },
                                {
                                    "value": "ODC PDDL",
                                    "label": "Public Domain Dedication and Licence"
                                },
                                {
                                    "value": "C",
                                    "label": "Copyright"
                                }
                            ]
                        },
                        {
                            "name": "licenseVersion",
                            "type": "select",
                            "label": "License Version",
                            "options": [
                                {
                                    "value": "4.0",
                                    "label": "4.0 International"
                                },
                                {
                                    "value": "3.0",
                                    "label": "3.0 Unported"
                                },
                                {
                                    "value": "2.5",
                                    "label": "2.5 Generic"
                                },
                                {
                                    "value": "2.0",
                                    "label": "2.0 Generic"
                                },
                                {
                                    "value": "1.0",
                                    "label": "1.0 Generic"
                                }
                            ],
                            "optional": true
                        },
                        {
                            "name": "yearFrom",
                            "type": "number",
                            "label": "Years (from)",
                            "placeholder": "1991",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "yearTo",
                            "type": "number",
                            "label": "Years (to)",
                            "placeholder": "1992",
                            "min": "-9999",
                            "max": "9999",
                            "optional": true
                        },
                        {
                            "name": "source",
                            "type": "text",
                            "label": "Source",
                            "placeholder": "https://",
                            "optional": true
                        },
                        {
                            "name": "authors",
                            "type": "list",
                            "field": {
                                "name": "author",
                                "type": "group",
                                "fields": [
                                    {
                                        "label": "Author's name",
                                        "name": "name",
                                        "optional": true,
                                        "type": "text"
                                    },
                                    {
                                        "name": "role",
                                        "type": "select",
                                        "label": "Author's role",
                                        "default": "Author",
                                        "options": [
                                            {
                                                "value": "Author",
                                                "label": "Author"
                                            },
                                            {
                                                "value": "Editor",
                                                "label": "Editor"
                                            },
                                            {
                                                "value": "Licensee",
                                                "label": "Licensee"
                                            },
                                            {
                                                "value": "Originator",
                                                "label": "Originator"
                                            }
                                        ]
                                    }
                                ]
                            }
                        },
                        {
                            "name": "licenseExtras",
                            "type": "text",
                            "widget": "textarea",
                            "label": "License Extras",
                            "optional": true,
                            "description": "Any additional information about the license"
                        },
                        {
                            "name": "changes",
                            "type": "list",
                            "field": {
                                "name": "change",
                                "type": "group",
                                "label": "Changelog",
                                "fields": [
                                    {
                                        "name": "date",
                                        "type": "text",
                                        "label": "Date",
                                        "optional": true
                                    },
                                    {
                                        "name": "author",
                                        "type": "text",
                                        "label": "Changed by",
                                        "optional": true
                                    },
                                    {
                                        "name": "log",
                                        "type": "text",
                                        "widget": "textarea",
                                        "label": "Description of change",
                                        "placeholder": "Photo cropped, text changed, etc.",
                                        "optional": true
                                    }
                                ]
                            }
                        },
                        {
                            "name": "authorComments",
                            "type": "text",
                            "widget": "textarea",
                            "label": "Author comments",
                            "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                            "optional": true
                        },
                        {
                            "name": "contentType",
                            "type": "text",
                            "widget": "none"
                        },
                        {
                            "name": "defaultLanguage",
                            "type": "text",
                            "widget": "none"
                        }
                    ],
                    "assets": {
                        "css": [
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                        ],
                        "js": [
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                            "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                            "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                        ]
                    },
                    "deleteMessage": "laravel-h5p.content.destoryed",
                    "apiVersion": {
                        "majorVersion": 1,
                        "minorVersion": 24
                    }
                },
                "loadedJs": [],
                "loadedCss": [],
                "core": {
                    "styles": [
                        "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
                    ],
                    "scripts": [
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                        "https://dev.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                        "https://dev.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                        "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
                    ]
                },
                "contents": {
                    "cid-54241": {
                        "library": "H5P.QuestionSet 1.17",
                        "jsonContent": "{\"introPage\":{\"showIntroPage\":false,\"startButtonText\":\"Start Quiz\",\"introduction\":\"\"},\"progressType\":\"dots\",\"passPercentage\":50,\"questions\":[{\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>17 Jun 2022<\\/div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>17 Jun 2023<\\/div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\",\"a11yCheck\":\"Check the answers. The responses will be marked as correct, incorrect, or unanswered.\",\"a11yShowSolution\":\"Show the solution. The task will be marked with its correct solution.\",\"a11yRetry\":\"Retry the task. Reset all responses and start the task over again.\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>Todays' Date<\\/p>\\n\"},\"library\":\"H5P.MultiChoice 1.14\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Taurus 17 Jun 2022\"},\"subContentId\":\"f7a7a7ed-e0c2-4bc5-8864-1e19a40b9677\"}],\"disableBackwardsNavigation\":false,\"randomQuestions\":false,\"endGame\":{\"showResultPage\":true,\"showSolutionButton\":true,\"showRetryButton\":true,\"noResultMessage\":\"Finished\",\"message\":\"Your result:\",\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solutionButtonText\":\"Show solution\",\"retryButtonText\":\"Retry\",\"finishButtonText\":\"Finish\",\"showAnimations\":false,\"skippable\":false,\"skipButtonText\":\"Skip video\"},\"override\":{\"checkButton\":true},\"currikisettings\":{\"disableSubmitButton\":false,\"placeholder\":false,\"currikil10n\":{\"submitAnswer\":\"Submit\",\"placeholderButton\":\"Placeholder\"}},\"texts\":{\"prevButton\":\"Previous question\",\"nextButton\":\"Next question\",\"finishButton\":\"Finish\",\"textualProgress\":\"Question: @current of @total questions\",\"jumpToQuestion\":\"Question %d of %total\",\"questionLabel\":\"Question\",\"readSpeakerProgress\":\"Question @current of @total\",\"unansweredText\":\"Unanswered\",\"answeredText\":\"Answered\",\"currentQuestionText\":\"Current question\"}}",
                        "fullScreen": 0,
                        "exportUrl": "https://dev.currikistudio.org/api/api/v1/h5p/export/54241",
                        "embedCode": "<iframe src=\"https://dev.currikistudio.org/h5p/embed/54241\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                        "resizeCode": "<script src=\"https://dev.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                        "url": "http://dev.currikistudio.org/h5p/embed/54241",
                        "title": "Taurus 17 Jun 2022",
                        "displayOptions": {
                            "frame": true,
                            "export": true,
                            "embed": true,
                            "copyright": false,
                            "icon": true,
                            "copy": false
                        },
                        "contentUserData": [
                            {
                                "state": "{}"
                            }
                        ],
                        "metadata": {
                            "title": "Taurus 17 Jun 2022",
                            "license": "U"
                        },
                        "scripts": [
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/EmbeddedJS-1.0/js/ejs_production.js?ver=1.0.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/EmbeddedJS-1.0/js/ejs_viewhelpers.js?ver=1.0.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Tether-1.0/scripts/tether.min.js?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/question.js?ver=1.4.8",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/explainer.js?ver=1.4.8",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/score-points.js?ver=1.4.8",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.MultiChoice-1.14/js/multichoice.js?ver=1.14.7",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/flowplayer-1.0/scripts/flowplayer-3.2.12.min.js?ver=1.0.5",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/youtube.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/panopto.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/html5.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/config.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/komodo.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/vimeo.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/flash.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/video.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/brightcove.js?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.QuestionSet-1.17/js/questionset.js?ver=1.17.2"
                        ],
                        "styles": [
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Tether-1.0/styles/tether.min.css?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.10",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/question.css?ver=1.4.8",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/explainer.css?ver=1.4.8",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.MultiChoice-1.14/css/multichoice.css?ver=1.14.7",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/styles/video.css?ver=1.5.21",
                            "https://dev.currikistudio.org/api/storage/h5p/libraries/H5P.QuestionSet-1.17/css/questionset.css?ver=1.17.2"
                        ]
                    }
                }
            },
            "user": null,
            "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-54241\" class=\"h5p-iframe\" data-content-id=\"54241\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
        },
        "created_at": "2022-06-17T00:10:25.000000Z",
        "updated_at": "2022-06-17T00:10:25.000000Z"
    }
}
 

Request      

GET api/v1/h5p/independent-activity/{independent_activity_id}/visibility/{visibility}

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

visibility  string optional  

The status of visibility

independent_activity  string  

The Id of an independent activity

Get H5P Embed

Get the specified H5P embed parameters

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/embed/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/embed/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/embed/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "settings": {
        "baseUrl": "https://www.currikistudio.org/api",
        "url": "https://www.currikistudio.org/api/storage/h5p",
        "postUserStatistics": true,
        "ajax": {
            "setFinished": "https://www.currikistudio.org/api/api/h5p/ajax/url",
            "contentUserData": "https://www.currikistudio.org/api/api/h5p/ajax/content-user-data/?content_id=:contentId&data_type=:dataType&sub_content_id=:subContentId"
        },
        "saveFreq": false,
        "siteUrl": "https://www.currikistudio.org/api",
        "l10n": {
            "H5P": {
                "fullscreen": "Fullscreen",
                "disableFullscreen": "Disable fullscreen",
                "download": "Download",
                "copyrights": "Rights of use",
                "embed": "Embed",
                "reuseDescription": "Reuse this content.",
                "size": "Size",
                "showAdvanced": "Show advanced",
                "hideAdvanced": "Hide advanced",
                "advancedHelp": "Include this script on your website if you want dynamic sizing of the embedded content:",
                "copyrightInformation": "Rights of use",
                "close": "Close",
                "title": "Title",
                "author": "Author",
                "year": "Year",
                "source": "Source",
                "license": "License",
                "thumbnail": "Thumbnail",
                "noCopyrights": "No copyright information available for this content.",
                "downloadDescription": "Download this content as a H5P file.",
                "copyrightsDescription": "View copyright information for this content.",
                "embedDescription": "View the embed code for this content.",
                "h5pDescription": "Visit H5P.org to check out more cool content.",
                "contentChanged": "This content has changed since you last used it.",
                "startingOver": "You'll be starting over.",
                "confirmDialogHeader": "Confirm action",
                "confirmDialogBody": "Please confirm that you wish to proceed. This action is not reversible.",
                "cancelLabel": "Cancel",
                "confirmLabel": "Confirm",
                "reuse": "Reuse",
                "reuseContent": "Reuse Content"
            }
        },
        "hubIsEnabled": false,
        "user": {
            "name": "John Doe",
            "email": "john.doe@currikistudio.org"
        },
        "editor": {
            "filesPath": "https://www.currikistudio.org/api/storage/h5p/editor",
            "fileIcon": {
                "path": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/images/binary-file.png",
                "width": 50,
                "height": 50
            },
            "ajaxPath": "https://www.currikistudio.org/api/api/v1/h5p/ajax/",
            "libraryUrl": "https://www.currikistudio.org/api/storage/h5p/h5p-editor/",
            "copyrightSemantics": {
                "name": "copyright",
                "type": "group",
                "label": "Copyright information",
                "fields": [
                    {
                        "name": "title",
                        "type": "text",
                        "label": "Title",
                        "placeholder": "La Gioconda",
                        "optional": true
                    },
                    {
                        "name": "author",
                        "type": "text",
                        "label": "Author",
                        "placeholder": "Leonardo da Vinci",
                        "optional": true
                    },
                    {
                        "name": "year",
                        "type": "text",
                        "label": "Year(s)",
                        "placeholder": "1503 - 1517",
                        "optional": true
                    },
                    {
                        "name": "source",
                        "type": "text",
                        "label": "Source",
                        "placeholder": "http://en.wikipedia.org/wiki/Mona_Lisa",
                        "optional": true,
                        "regexp": {
                            "pattern": "^http[s]?://.+",
                            "modifiers": "i"
                        }
                    },
                    {
                        "name": "license",
                        "type": "select",
                        "label": "License",
                        "default": "U",
                        "options": [
                            {
                                "value": "U",
                                "label": "Undisclosed"
                            },
                            {
                                "value": "CC BY",
                                "label": "Attribution",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-SA",
                                "label": "Attribution-ShareAlike",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-ND",
                                "label": "Attribution-NoDerivs",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC",
                                "label": "Attribution-NonCommercial",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC-SA",
                                "label": "Attribution-NonCommercial-ShareAlike",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "CC BY-NC-ND",
                                "label": "Attribution-NonCommercial-NoDerivs",
                                "versions": [
                                    {
                                        "value": "4.0",
                                        "label": "4.0 International"
                                    },
                                    {
                                        "value": "3.0",
                                        "label": "3.0 Unported"
                                    },
                                    {
                                        "value": "2.5",
                                        "label": "2.5 Generic"
                                    },
                                    {
                                        "value": "2.0",
                                        "label": "2.0 Generic"
                                    },
                                    {
                                        "value": "1.0",
                                        "label": "1.0 Generic"
                                    }
                                ]
                            },
                            {
                                "value": "GNU GPL",
                                "label": "General Public License",
                                "versions": [
                                    {
                                        "value": "v3",
                                        "label": "Version 3"
                                    },
                                    {
                                        "value": "v2",
                                        "label": "Version 2"
                                    },
                                    {
                                        "value": "v1",
                                        "label": "Version 1"
                                    }
                                ]
                            },
                            {
                                "value": "PD",
                                "label": "Public Domain",
                                "versions": [
                                    {
                                        "value": "-",
                                        "label": "-"
                                    },
                                    {
                                        "value": "CC0 1.0",
                                        "label": "CC0 1.0 Universal"
                                    },
                                    {
                                        "value": "CC PDM",
                                        "label": "Public Domain Mark"
                                    }
                                ]
                            },
                            {
                                "value": "C",
                                "label": "Copyright"
                            }
                        ]
                    },
                    {
                        "name": "version",
                        "type": "select",
                        "label": "License Version",
                        "options": []
                    }
                ]
            },
            "metadataSemantics": [
                {
                    "name": "title",
                    "type": "text",
                    "label": "Title",
                    "placeholder": "La Gioconda"
                },
                {
                    "name": "license",
                    "type": "select",
                    "label": "License",
                    "default": "U",
                    "options": [
                        {
                            "value": "U",
                            "label": "Undisclosed"
                        },
                        {
                            "type": "optgroup",
                            "label": "Creative Commons",
                            "options": [
                                {
                                    "value": "CC BY",
                                    "label": "Attribution (CC BY)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-SA",
                                    "label": "Attribution-ShareAlike (CC BY-SA)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-ND",
                                    "label": "Attribution-NoDerivs (CC BY-ND)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC",
                                    "label": "Attribution-NonCommercial (CC BY-NC)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC-SA",
                                    "label": "Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC BY-NC-ND",
                                    "label": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
                                    "versions": [
                                        {
                                            "value": "4.0",
                                            "label": "4.0 International"
                                        },
                                        {
                                            "value": "3.0",
                                            "label": "3.0 Unported"
                                        },
                                        {
                                            "value": "2.5",
                                            "label": "2.5 Generic"
                                        },
                                        {
                                            "value": "2.0",
                                            "label": "2.0 Generic"
                                        },
                                        {
                                            "value": "1.0",
                                            "label": "1.0 Generic"
                                        }
                                    ]
                                },
                                {
                                    "value": "CC0 1.0",
                                    "label": "Public Domain Dedication (CC0)"
                                },
                                {
                                    "value": "CC PDM",
                                    "label": "Public Domain Mark (PDM)"
                                }
                            ]
                        },
                        {
                            "value": "GNU GPL",
                            "label": "General Public License v3"
                        },
                        {
                            "value": "PD",
                            "label": "Public Domain"
                        },
                        {
                            "value": "ODC PDDL",
                            "label": "Public Domain Dedication and Licence"
                        },
                        {
                            "value": "C",
                            "label": "Copyright"
                        }
                    ]
                },
                {
                    "name": "licenseVersion",
                    "type": "select",
                    "label": "License Version",
                    "options": [
                        {
                            "value": "4.0",
                            "label": "4.0 International"
                        },
                        {
                            "value": "3.0",
                            "label": "3.0 Unported"
                        },
                        {
                            "value": "2.5",
                            "label": "2.5 Generic"
                        },
                        {
                            "value": "2.0",
                            "label": "2.0 Generic"
                        },
                        {
                            "value": "1.0",
                            "label": "1.0 Generic"
                        }
                    ],
                    "optional": true
                },
                {
                    "name": "yearFrom",
                    "type": "number",
                    "label": "Years (from)",
                    "placeholder": "1991",
                    "min": "-9999",
                    "max": "9999",
                    "optional": true
                },
                {
                    "name": "yearTo",
                    "type": "number",
                    "label": "Years (to)",
                    "placeholder": "1992",
                    "min": "-9999",
                    "max": "9999",
                    "optional": true
                },
                {
                    "name": "source",
                    "type": "text",
                    "label": "Source",
                    "placeholder": "https://",
                    "optional": true
                },
                {
                    "name": "authors",
                    "type": "list",
                    "field": {
                        "name": "author",
                        "type": "group",
                        "fields": [
                            {
                                "label": "Author's name",
                                "name": "name",
                                "optional": true,
                                "type": "text"
                            },
                            {
                                "name": "role",
                                "type": "select",
                                "label": "Author's role",
                                "default": "Author",
                                "options": [
                                    {
                                        "value": "Author",
                                        "label": "Author"
                                    },
                                    {
                                        "value": "Editor",
                                        "label": "Editor"
                                    },
                                    {
                                        "value": "Licensee",
                                        "label": "Licensee"
                                    },
                                    {
                                        "value": "Originator",
                                        "label": "Originator"
                                    }
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "licenseExtras",
                    "type": "text",
                    "widget": "textarea",
                    "label": "License Extras",
                    "optional": true,
                    "description": "Any additional information about the license"
                },
                {
                    "name": "changes",
                    "type": "list",
                    "field": {
                        "name": "change",
                        "type": "group",
                        "label": "Changelog",
                        "fields": [
                            {
                                "name": "date",
                                "type": "text",
                                "label": "Date",
                                "optional": true
                            },
                            {
                                "name": "author",
                                "type": "text",
                                "label": "Changed by",
                                "optional": true
                            },
                            {
                                "name": "log",
                                "type": "text",
                                "widget": "textarea",
                                "label": "Description of change",
                                "placeholder": "Photo cropped, text changed, etc.",
                                "optional": true
                            }
                        ]
                    }
                },
                {
                    "name": "authorComments",
                    "type": "text",
                    "widget": "textarea",
                    "label": "Author comments",
                    "description": "Comments for the editor of the content (This text will not be published as a part of copyright info)",
                    "optional": true
                },
                {
                    "name": "contentType",
                    "type": "text",
                    "widget": "none"
                },
                {
                    "name": "defaultLanguage",
                    "type": "text",
                    "widget": "none"
                }
            ],
            "assets": {
                "css": [
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/libs/darkroom.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/h5p-hub-client.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/fonts.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/application.css",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/styles/css/libs/zebra_datepicker.min.css"
                ],
                "js": [
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5p-hub-client.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-semantic-structure.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-selector.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-fullscreen-bar.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-form.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-text.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-html.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-number.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-textarea.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file-uploader.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-file.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-image-popup.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-av.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-group.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-boolean.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-list-editor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-library-list-cache.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-select.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-hub.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-selector-legacy.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-dimensions.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-coordinates.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-none.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-author-widget.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-metadata-changelog-widget.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-pre-save.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/ckeditor/ckeditor.js",
                    "https://www.currikistudio.org/api/storage/h5p/h5p-editor/language/en.js"
                ]
            },
            "deleteMessage": "laravel-h5p.content.destoryed",
            "apiVersion": {
                "majorVersion": 1,
                "minorVersion": 24
            }
        },
        "loadedJs": [],
        "loadedCss": [],
        "core": {
            "styles": [
                "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/css/laravel-h5p.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-confirmation-dialog.css",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/styles/h5p-core-button.css"
            ],
            "scripts": [
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/jquery.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-event-dispatcher.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api-event.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-x-api.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-content-type.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-confirmation-dialog.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-action-bar.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-core/js/request-queue.js",
                "https://www.currikistudio.org/api/storage/h5p/h5p-editor/scripts/h5peditor-editor.js",
                "https://www.currikistudio.org/api/storage/h5p/laravel-h5p/js/laravel-h5p.js",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9"
            ]
        },
        "contents": {
            "cid-1021": {
                "library": "H5P.InteractiveVideo 1.21",
                "jsonContent": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcF8MxUj2Q0\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"df95f6d4-a3c9-4fc0-b97c-f3107649b7af\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"cb5b149b-fa96-498d-ab54-1f153716dc1e\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                "fullScreen": 1,
                "exportUrl": "https://www.currikistudio.org/api/h5p/export/1021",
                "embedCode": "<iframe src=\"https://www.currikistudio.org/h5p/embed/1021\" width=\":w\" height=\":h\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"></iframe>",
                "resizeCode": "<script src=\"https://www.currikistudio.org/api/storage/h5p/h5p-core/js/h5p-resizer.js\" charset=\"UTF-8\"></script>",
                "url": "https://www.currikistudio.org/api/h5p/embed/1021",
                "title": "Tips and Tricks for Creating Projects in CurrikiStudio",
                "displayOptions": {
                    "frame": false,
                    "export": true,
                    "embed": true,
                    "copyright": false,
                    "icon": true,
                    "copy": false
                },
                "contentUserData": [
                    {
                        "state": "{}"
                    }
                ],
                "scripts": [
                    "https://www.currikistudio.org/api/storage/h5p/libraries/flowplayer-1.0/scripts/flowplayer-3.2.12.min.js?ver=1.0.5",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/js/drop.min.js?ver=1.0.2",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Transition-1.0/transition.js?ver=1.0.4",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-help-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-message-dialog.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progress-circle.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-simple-rounded-button.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-speech-bubble.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-throbber.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-tip.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-slider.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-score-bar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-progressbar.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/js/joubel-ui.js?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/question.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/explainer.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/scripts/score-points.js?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/stop-watch.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/xapi-event-builder.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/js/summary.js?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNDrop-1.1/drag-n-drop.js?ver=1.1.5",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.js?ver=1.2.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/context-menu.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/dialog.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-element.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/scripts/drag-n-bar-form-manager.js?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.js?ver=1.10.19",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/youtube.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/panopto.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/html5.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/flash.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/scripts/video.js?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.js?ver=1.21.9"
                ],
                "styles": [
                    "https://www.currikistudio.org/api/storage/h5p/libraries/FontAwesome-4.5/h5p-font-awesome.min.css?ver=4.5.4",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/Drop-1.0/css/drop-theme-arrows-bounce.min.css?ver=1.0.2",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.FontIcons-1.0/styles/h5p-font-icons.css?ver=1.0.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-help-dialog.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-message-dialog.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progress-circle.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-simple-rounded-button.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-speech-bubble.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-tip.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-slider.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-score-bar.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-progressbar.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-ui.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.JoubelUI-1.3/css/joubel-icon.css?ver=1.3.9",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/question.css?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Question-1.4/styles/explainer.css?ver=1.4.7",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Summary-1.10/css/summary.css?ver=1.10.8",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNResize-1.2/H5P.DragNResize.css?ver=1.2.6",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/dialog.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/context-menu.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.DragNBar-1.5/styles/drag-n-bar-form-manager.css?ver=1.5.10",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/jQuery.ui-1.10/h5p-jquery-ui.css?ver=1.10.19",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.Video-1.5/styles/video.css?ver=1.5.12",
                    "https://www.currikistudio.org/api/storage/h5p/libraries/H5P.InteractiveVideo-1.21/dist/h5p-interactive-video.css?ver=1.21.9"
                ]
            }
        }
    },
    "embed_code": "<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-1021\" class=\"h5p-iframe\" data-content-id=\"1021\" style=\"height: 1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\"></iframe></div>"
}
 

Request      

GET api/v1/h5p/embed/{id}

URL Parameters

id  string  

The Id of a H5p

GET api/v1/google-classroom/h5p/ajax/content-user-data

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/google-classroom/h5p/ajax/content-user-data" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/h5p/ajax/content-user-data"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/google-classroom/h5p/ajax/content-user-data',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
content-type: text/html; charset=UTF-8
cache-control: no-cache, private
 


 

Request      

GET api/v1/google-classroom/h5p/ajax/content-user-data

POST api/v1/google-classroom/h5p/ajax/content-user-data

PUT api/v1/google-classroom/h5p/ajax/content-user-data

PATCH api/v1/google-classroom/h5p/ajax/content-user-data

DELETE api/v1/google-classroom/h5p/ajax/content-user-data

OPTIONS api/v1/google-classroom/h5p/ajax/content-user-data

13. Search

APIs for search management

Search projects, playlists and activities for deep linking

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/search?organization_id=1&query=test&sort=created_at&order=desc&from=0&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"searchType\": \"org_projects\",
    \"query\": \"arnflzjryhqpefmvicrrleennumjprwpgbvmbpbyzhuufcyenbvceirotlsjusinkqcyyxpbgbrnlzuwlnypptviewfyvuqahendkqjmmzfomxsaejtdlkxosqtgnyyphrvhiwkjbllr\",
    \"organization_id\": 5,
    \"negativeQuery\": \"khthwcxhcmunscdpofiikzuugymouadrnwaikzqbvbfyztrtxfmevgyxaubiikhlremrkxoealwrorisjwsgckystujqmkxthrmlosvaqmjcbphkykqvrzaeqklrcurobfyfqivyccphocdvqioygdfur\",
    \"indexing\": \"null\",
    \"startDate\": \"2022-12-01T09:55:04\",
    \"endDate\": \"2060-10-04\",
    \"userIds\": [
        12
    ],
    \"author\": \"yuguruapgugktwalhdofkdhhuqcvaayzsczpjpxmadisdztohhnwtvoqovtlpiaqapnlgphmcjnfjhzowhdmrhqubfeymualztxswgllcdlrsgabrazapzywseaysuppcfbygje\",
    \"h5pLibraries\": [
        \"aut\"
    ],
    \"subjectIds\": [
        9
    ],
    \"educationLevelIds\": [
        6
    ],
    \"authorTagsIds\": [
        2
    ],
    \"model\": \"projects\",
    \"sort\": \"created_at\",
    \"order\": \"desc\",
    \"from\": 12,
    \"size\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/search"
);

const params = {
    "organization_id": "1",
    "query": "test",
    "sort": "created_at",
    "order": "desc",
    "from": "0",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "searchType": "org_projects",
    "query": "arnflzjryhqpefmvicrrleennumjprwpgbvmbpbyzhuufcyenbvceirotlsjusinkqcyyxpbgbrnlzuwlnypptviewfyvuqahendkqjmmzfomxsaejtdlkxosqtgnyyphrvhiwkjbllr",
    "organization_id": 5,
    "negativeQuery": "khthwcxhcmunscdpofiikzuugymouadrnwaikzqbvbfyztrtxfmevgyxaubiikhlremrkxoealwrorisjwsgckystujqmkxthrmlosvaqmjcbphkykqvrzaeqklrcurobfyfqivyccphocdvqioygdfur",
    "indexing": "null",
    "startDate": "2022-12-01T09:55:04",
    "endDate": "2060-10-04",
    "userIds": [
        12
    ],
    "author": "yuguruapgugktwalhdofkdhhuqcvaayzsczpjpxmadisdztohhnwtvoqovtlpiaqapnlgphmcjnfjhzowhdmrhqubfeymualztxswgllcdlrsgabrazapzywseaysuppcfbygje",
    "h5pLibraries": [
        "aut"
    ],
    "subjectIds": [
        9
    ],
    "educationLevelIds": [
        6
    ],
    "authorTagsIds": [
        2
    ],
    "model": "projects",
    "sort": "created_at",
    "order": "desc",
    "from": 12,
    "size": 1
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization_id'=> '1',
            'query'=> 'test',
            'sort'=> 'created_at',
            'order'=> 'desc',
            'from'=> '0',
            'size'=> '10',
        ],
        'json' => [
            'searchType' => 'org_projects',
            'query' => 'arnflzjryhqpefmvicrrleennumjprwpgbvmbpbyzhuufcyenbvceirotlsjusinkqcyyxpbgbrnlzuwlnypptviewfyvuqahendkqjmmzfomxsaejtdlkxosqtgnyyphrvhiwkjbllr',
            'organization_id' => 5,
            'negativeQuery' => 'khthwcxhcmunscdpofiikzuugymouadrnwaikzqbvbfyztrtxfmevgyxaubiikhlremrkxoealwrorisjwsgckystujqmkxthrmlosvaqmjcbphkykqvrzaeqklrcurobfyfqivyccphocdvqioygdfur',
            'indexing' => 'null',
            'startDate' => '2022-12-01T09:55:04',
            'endDate' => '2060-10-04',
            'userIds' => [
                12,
            ],
            'author' => 'yuguruapgugktwalhdofkdhhuqcvaayzsczpjpxmadisdztohhnwtvoqovtlpiaqapnlgphmcjnfjhzowhdmrhqubfeymualztxswgllcdlrsgabrazapzywseaysuppcfbygje',
            'h5pLibraries' => [
                'aut',
            ],
            'subjectIds' => [
                9,
            ],
            'educationLevelIds' => [
                6,
            ],
            'authorTagsIds' => [
                2,
            ],
            'model' => 'projects',
            'sort' => 'created_at',
            'order' => 'desc',
            'from' => 12,
            'size' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": {
        "query": [
            "The query field is required."
        ]
    }
}
 

Example response (200):


{
    "projects": {
        "979": {
            "id": 979,
            "thumb_url": "/storage/uploads/5f10830df0dcf.png",
            "title": "Exploring Our National Parks",
            "description": "Explore America’s national parks. Discover our most treasured places. From science to the arts, service learning to teacher training, America’s national parks teach invaluable lessons about our planet, our history, and ourselves. These incredible places, and all that they offer beyond the boundaries of the national parks, are the catalysts for inspiring a new generation of park enthusiasts. The National Park Foundation is dedicated to utilizing these powerful learning environments that can provide in-depth, real-world learning experiences, to nurture a deep connection between the next generation and America's national parks.",
            "model": "Project",
            "user": null,
            "playlists": {
                "2174": {
                    "id": 2174,
                    "thumb_url": "/storage/uploads/5f10830df0dcf.png",
                    "title": "Exploring Yosemite",
                    "model": "Playlist",
                    "user": null,
                    "activities": {
                        "9990": {
                            "id": 9990,
                            "thumb_url": "/storage/uploads/5f10831d961f8.jpeg",
                            "title": "",
                            "model": "Activity",
                            "user": null
                        },
                        "9991": {
                            "id": 9991,
                            "thumb_url": "/storage/uploads/5f108329c36e2.jpeg",
                            "title": "",
                            "model": "Activity",
                            "user": null
                        },
                        "9992": {
                            "id": 9992,
                            "thumb_url": "/storage/uploads/5f10833529209.jpeg",
                            "title": "",
                            "model": "Activity",
                            "user": null
                        }
                    }
                }
            }
        }
    }
}
 

Advance search

Advance search for projects, playlists and activities having indexing approved

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/search/advanced?organization_id=1&query=test&negativeQuery=badword&userIds[]=1&startDate=2020-04-30+00%3A00%3A00&endDate=2020-04-30+23%3A59%3A59&subjectIds[]=1&educationLevelIds[]=1&authorTagsIds[]=1&h5pLibraries[]=repellat&model=activities&sort=created_at&order=desc&from=0&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"searchType\": \"lti_search\",
    \"query\": \"vfzdyddipmvmyurjqeowuosrnchodhbmeywbgvwi\",
    \"organization_id\": 4,
    \"negativeQuery\": \"djgqogbxscjfcfzelimmlvboxxcpuawymmscjczhdymmyykqvclsvvxljoiqzlspljwvhppkqglqelaezzfevtwjqbgonmfkqegzbpdojklyeosaircacuoaaeulkinhfmfxfykizimvitntzwbnetiiglmaaowlwelpkojczzyqwtyppyefymv\",
    \"indexing\": \"2\",
    \"startDate\": \"2022-12-01T09:55:04\",
    \"endDate\": \"2059-11-22\",
    \"userIds\": [
        2
    ],
    \"author\": \"gparvcnfvubtywohwsioxmdhgwggllftzbtpzlyhadadwlfogeniuauqxcegftzstocctbehdzjyhhwadayqdwoeexygejiicbqttdvkyykrxnarqmuhvzbdkpdraeppfhpbtevcpvtbygdydymxskkmlijgqdrbthnnobrchxzlteq\",
    \"h5pLibraries\": [
        \"velit\"
    ],
    \"subjectIds\": [
        1
    ],
    \"educationLevelIds\": [
        2
    ],
    \"authorTagsIds\": [
        11
    ],
    \"model\": \"activities\",
    \"sort\": \"created_at\",
    \"order\": \"asc\",
    \"from\": 4,
    \"size\": 2
}"
const url = new URL(
    "http://localhost:8000/api/v1/search/advanced"
);

const params = {
    "organization_id": "1",
    "query": "test",
    "negativeQuery": "badword",
    "userIds[]": "1",
    "startDate": "2020-04-30 00:00:00",
    "endDate": "2020-04-30 23:59:59",
    "subjectIds[]": "1",
    "educationLevelIds[]": "1",
    "authorTagsIds[]": "1",
    "h5pLibraries[]": "repellat",
    "model": "activities",
    "sort": "created_at",
    "order": "desc",
    "from": "0",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "searchType": "lti_search",
    "query": "vfzdyddipmvmyurjqeowuosrnchodhbmeywbgvwi",
    "organization_id": 4,
    "negativeQuery": "djgqogbxscjfcfzelimmlvboxxcpuawymmscjczhdymmyykqvclsvvxljoiqzlspljwvhppkqglqelaezzfevtwjqbgonmfkqegzbpdojklyeosaircacuoaaeulkinhfmfxfykizimvitntzwbnetiiglmaaowlwelpkojczzyqwtyppyefymv",
    "indexing": "2",
    "startDate": "2022-12-01T09:55:04",
    "endDate": "2059-11-22",
    "userIds": [
        2
    ],
    "author": "gparvcnfvubtywohwsioxmdhgwggllftzbtpzlyhadadwlfogeniuauqxcegftzstocctbehdzjyhhwadayqdwoeexygejiicbqttdvkyykrxnarqmuhvzbdkpdraeppfhpbtevcpvtbygdydymxskkmlijgqdrbthnnobrchxzlteq",
    "h5pLibraries": [
        "velit"
    ],
    "subjectIds": [
        1
    ],
    "educationLevelIds": [
        2
    ],
    "authorTagsIds": [
        11
    ],
    "model": "activities",
    "sort": "created_at",
    "order": "asc",
    "from": 4,
    "size": 2
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/search/advanced',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization_id'=> '1',
            'query'=> 'test',
            'negativeQuery'=> 'badword',
            'userIds[]'=> '1',
            'startDate'=> '2020-04-30 00:00:00',
            'endDate'=> '2020-04-30 23:59:59',
            'subjectIds[]'=> '1',
            'educationLevelIds[]'=> '1',
            'authorTagsIds[]'=> '1',
            'h5pLibraries[]'=> 'repellat',
            'model'=> 'activities',
            'sort'=> 'created_at',
            'order'=> 'desc',
            'from'=> '0',
            'size'=> '10',
        ],
        'json' => [
            'searchType' => 'lti_search',
            'query' => 'vfzdyddipmvmyurjqeowuosrnchodhbmeywbgvwi',
            'organization_id' => 4,
            'negativeQuery' => 'djgqogbxscjfcfzelimmlvboxxcpuawymmscjczhdymmyykqvclsvvxljoiqzlspljwvhppkqglqelaezzfevtwjqbgonmfkqegzbpdojklyeosaircacuoaaeulkinhfmfxfykizimvitntzwbnetiiglmaaowlwelpkojczzyqwtyppyefymv',
            'indexing' => '2',
            'startDate' => '2022-12-01T09:55:04',
            'endDate' => '2059-11-22',
            'userIds' => [
                2,
            ],
            'author' => 'gparvcnfvubtywohwsioxmdhgwggllftzbtpzlyhadadwlfogeniuauqxcegftzstocctbehdzjyhhwadayqdwoeexygejiicbqttdvkyykrxnarqmuhvzbdkpdraeppfhpbtevcpvtbygdydymxskkmlijgqdrbthnnobrchxzlteq',
            'h5pLibraries' => [
                'velit',
            ],
            'subjectIds' => [
                1,
            ],
            'educationLevelIds' => [
                2,
            ],
            'authorTagsIds' => [
                11,
            ],
            'model' => 'activities',
            'sort' => 'created_at',
            'order' => 'asc',
            'from' => 4,
            'size' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": {
        "userIds": [
            "The user Ids must be an array."
        ]
    }
}
 

Example response (200):


{
    "data": [
        {
            "id": 9999,
            "thumb_url": "/storage/uploads/5f1083871600f.png",
            "title": "",
            "model": "Activity",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        },
        {
            "id": 999,
            "thumb_url": "/storage/uploads/5ef42a8dc4386.png",
            "title": "About The National Parks",
            "model": "Playlist",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        },
        {
            "id": 999,
            "thumb_url": "/storage/uploads_tmp/UDixgGgVAnNYNMikT8Qic7q0WR0SSA54lOqL9u6t.png",
            "title": "Algebra 1 ACPS Curriki Resources",
            "description": "Algebra 1 ACPS Curriki Resources",
            "favored": false,
            "model": "Project",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        }
    ],
    "meta": {
        "activities": 1,
        "playlists": 1,
        "projects": 1,
        "total": 3
    }
}
 

Request      

GET api/v1/search/advanced

Query Parameters

organization_id  string  

The Id of a organization

query  string optional  

Query to search.

negativeQuery  string optional  

Terms that should not exist.

userIds  string[] optional  

of user ids to match.

startDate  string optional  

Start date for search by date range.

endDate  string optional  

End date for search by date range.

subjectIds  string[] optional  

of subject ids to match.

educationLevelIds  string[] optional  

of education level ids to match.

authorTagsIds  string[] optional  

of author tags ids to match.

h5pLibraries  string[] optional  

of h5p libraries to match.

model  string optional  

Index to filter by.

sort  string optional  

Field to sort by.

order  string optional  

Order to sort by.

from  string optional  

Index where the pagination start from.

size  integer optional  

Number of records to return.

Body Parameters

searchType  string  

Must be one of my_projects, showcase_projects, org_projects, or lti_search.

query  string optional  

Must not be greater than 255 characters.

organization_id  integer  

negativeQuery  string optional  

Must not be greater than 255 characters.

indexing  string[] optional  

Must be one of null, 1, 2, or 3.

startDate  string optional  

Must be a valid date.

endDate  string optional  

Must be a valid date. Must be a date after or equal to startDate.

userIds  integer[] optional  

author  string optional  

Must not be greater than 255 characters.

h5pLibraries  string[] optional  

subjectIds  integer[] optional  

educationLevelIds  integer[] optional  

authorTagsIds  integer[] optional  

model  string optional  

Must be one of activities, playlists, or projects.

sort  string optional  

Must be one of created_at.

order  string optional  

Must be one of asc or desc.

from  integer optional  

size  integer optional  

Dashboard search

Dashboard search for projects, playlists and activities irrespective of indexing status

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/search/dashboard?organization_id=1&query=test&negativeQuery=badword&indexing=%5B3%5D&startDate=2020-04-30+00%3A00%3A00&endDate=2020-04-30+23%3A59%3A59&subjectIds[]=1&educationLevelIds[]=1&authorTagsIds[]=1&h5pLibraries[]=pariatur&model=activities&sort=created_at&order=desc&from=0&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"searchType\": \"org_projects\",
    \"query\": \"sznrgwuylscbjspwiioexbpmyzteqwsaolrqbizjgbeyquacyrahkeaghiiqeupmvivwtetzhudxprtbzuhfphavpycaslzdvfvftirhhvzgzhkinoserehsfxpzlvmbkzddazmcsrqzwpqjzdnelrtdwitaypvljgockyidyregrwkydqg\",
    \"organization_id\": 15,
    \"negativeQuery\": \"gvzkrsufaemgsyapixiiupwzxboaanqvghvtmwtqpbbkynsnqlhxijdoacsvjznnavyezbuiibgmvqqkbdpaqelyysslqbhubsaokvkzpkaqlasqhigmkslusrheaoypwzxqvgufdgvonivnauotwekofzbtasbubbvaskwcgzjqltfkwetbasw\",
    \"indexing\": \"1\",
    \"startDate\": \"2022-12-01T09:55:04\",
    \"endDate\": \"2107-06-29\",
    \"userIds\": [
        5
    ],
    \"author\": \"jvbbqsakpbxdvkjvjdmuuchdkkpfrmuvocxtxkofjcnwzygrclvkqhkbiicygvcsuedpkfephcybdpiyspijlhvswwlrdbajzszifmuiiljzyitwksrejtnwxgrvlilcbekzlxuoozenehcdcdddguzfkwjfdvebfdcdqgxchpdxzhbjpkpqxdgcntarp\",
    \"h5pLibraries\": [
        \"reprehenderit\"
    ],
    \"subjectIds\": [
        15
    ],
    \"educationLevelIds\": [
        9
    ],
    \"authorTagsIds\": [
        10
    ],
    \"model\": \"playlists\",
    \"sort\": \"created_at\",
    \"order\": \"desc\",
    \"from\": 12,
    \"size\": 7
}"
const url = new URL(
    "http://localhost:8000/api/v1/search/dashboard"
);

const params = {
    "organization_id": "1",
    "query": "test",
    "negativeQuery": "badword",
    "indexing": "[3]",
    "startDate": "2020-04-30 00:00:00",
    "endDate": "2020-04-30 23:59:59",
    "subjectIds[]": "1",
    "educationLevelIds[]": "1",
    "authorTagsIds[]": "1",
    "h5pLibraries[]": "pariatur",
    "model": "activities",
    "sort": "created_at",
    "order": "desc",
    "from": "0",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "searchType": "org_projects",
    "query": "sznrgwuylscbjspwiioexbpmyzteqwsaolrqbizjgbeyquacyrahkeaghiiqeupmvivwtetzhudxprtbzuhfphavpycaslzdvfvftirhhvzgzhkinoserehsfxpzlvmbkzddazmcsrqzwpqjzdnelrtdwitaypvljgockyidyregrwkydqg",
    "organization_id": 15,
    "negativeQuery": "gvzkrsufaemgsyapixiiupwzxboaanqvghvtmwtqpbbkynsnqlhxijdoacsvjznnavyezbuiibgmvqqkbdpaqelyysslqbhubsaokvkzpkaqlasqhigmkslusrheaoypwzxqvgufdgvonivnauotwekofzbtasbubbvaskwcgzjqltfkwetbasw",
    "indexing": "1",
    "startDate": "2022-12-01T09:55:04",
    "endDate": "2107-06-29",
    "userIds": [
        5
    ],
    "author": "jvbbqsakpbxdvkjvjdmuuchdkkpfrmuvocxtxkofjcnwzygrclvkqhkbiicygvcsuedpkfephcybdpiyspijlhvswwlrdbajzszifmuiiljzyitwksrejtnwxgrvlilcbekzlxuoozenehcdcdddguzfkwjfdvebfdcdqgxchpdxzhbjpkpqxdgcntarp",
    "h5pLibraries": [
        "reprehenderit"
    ],
    "subjectIds": [
        15
    ],
    "educationLevelIds": [
        9
    ],
    "authorTagsIds": [
        10
    ],
    "model": "playlists",
    "sort": "created_at",
    "order": "desc",
    "from": 12,
    "size": 7
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/search/dashboard',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'organization_id'=> '1',
            'query'=> 'test',
            'negativeQuery'=> 'badword',
            'indexing'=> '[3]',
            'startDate'=> '2020-04-30 00:00:00',
            'endDate'=> '2020-04-30 23:59:59',
            'subjectIds[]'=> '1',
            'educationLevelIds[]'=> '1',
            'authorTagsIds[]'=> '1',
            'h5pLibraries[]'=> 'pariatur',
            'model'=> 'activities',
            'sort'=> 'created_at',
            'order'=> 'desc',
            'from'=> '0',
            'size'=> '10',
        ],
        'json' => [
            'searchType' => 'org_projects',
            'query' => 'sznrgwuylscbjspwiioexbpmyzteqwsaolrqbizjgbeyquacyrahkeaghiiqeupmvivwtetzhudxprtbzuhfphavpycaslzdvfvftirhhvzgzhkinoserehsfxpzlvmbkzddazmcsrqzwpqjzdnelrtdwitaypvljgockyidyregrwkydqg',
            'organization_id' => 15,
            'negativeQuery' => 'gvzkrsufaemgsyapixiiupwzxboaanqvghvtmwtqpbbkynsnqlhxijdoacsvjznnavyezbuiibgmvqqkbdpaqelyysslqbhubsaokvkzpkaqlasqhigmkslusrheaoypwzxqvgufdgvonivnauotwekofzbtasbubbvaskwcgzjqltfkwetbasw',
            'indexing' => '1',
            'startDate' => '2022-12-01T09:55:04',
            'endDate' => '2107-06-29',
            'userIds' => [
                5,
            ],
            'author' => 'jvbbqsakpbxdvkjvjdmuuchdkkpfrmuvocxtxkofjcnwzygrclvkqhkbiicygvcsuedpkfephcybdpiyspijlhvswwlrdbajzszifmuiiljzyitwksrejtnwxgrvlilcbekzlxuoozenehcdcdddguzfkwjfdvebfdcdqgxchpdxzhbjpkpqxdgcntarp',
            'h5pLibraries' => [
                'reprehenderit',
            ],
            'subjectIds' => [
                15,
            ],
            'educationLevelIds' => [
                9,
            ],
            'authorTagsIds' => [
                10,
            ],
            'model' => 'playlists',
            'sort' => 'created_at',
            'order' => 'desc',
            'from' => 12,
            'size' => 7,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 761,
            "project_id": 68,
            "playlist_id": 188,
            "thumb_url": "/storage/uploads/MyIAkGC6G7IieNAfvoLR984sOKRrK2NvjZ2aXVd3.png",
            "title": "Virtual Tour",
            "content": "",
            "model": "Activity",
            "created_at": null,
            "user": {
                "id": 1225,
                "first_name": "Demo",
                "last_name": "Demo",
                "email": "demo@currikistudio.org"
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "image": "/storage/organizations/INDxHaVdBZeZp1FTmMCI3CUWU80OfykpePT7YNrf.jpg"
            }
        },
        {
            "id": 761,
            "project_id": 68,
            "playlist_id": 188,
            "thumb_url": "/storage/uploads/MyIAkGC6G7IieNAfvoLR984sOKRrK2NvjZ2aXVd3.png",
            "title": "Virtual Tour",
            "content": "",
            "model": "Activity",
            "created_at": null,
            "user": {
                "id": 1225,
                "first_name": "Demo",
                "last_name": "Demo",
                "email": "demo@currikistudio.org"
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "image": "/storage/organizations/INDxHaVdBZeZp1FTmMCI3CUWU80OfykpePT7YNrf.jpg"
            }
        }
    ]
}
 

Example response (400):


{
    "errors": {
        "userIds": [
            "The user ids must be an array."
        ]
    }
}
 

Example response (200):


{
    "data": [
        {
            "id": 9,
            "thumb_url": null,
            "title": "",
            "model": "Activity",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        },
        {
            "id": 9,
            "thumb_url": "/storage/uploads/i6kOcAFcvBGd3yabpnbUKaqUARdUQsJ8LJLzzDUW.png",
            "title": "Chapter 2: What is money?",
            "model": "Playlist",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        },
        {
            "id": 9,
            "thumb_url": "/storage/uploads/5f4013d35ec0e.png",
            "title": "Globalization, Robots and You",
            "description": "You have important decisions to make about your educations and career – wouldn’t it be nice if you could better understand the forces of globalization and automation first? What information do you need to gauge salary prospects, the risk of automation, and foreign competition as you compare your options?",
            "favored": false,
            "model": "Project",
            "user": null,
            "created_at": "2020-07-29T20:51:30.000000Z"
        }
    ],
    "meta": {
        "activities": 1,
        "playlists": 1,
        "projects": 1,
        "total": 3
    }
}
 

Request      

GET api/v1/search/dashboard

Query Parameters

organization_id  string  

The Id of a organization

query  string optional  

Query to search.

negativeQuery  string optional  

Terms that should not exist.

indexing  string optional  

Indexing requested, approved or not approved.

startDate  string optional  

Start date for search by date range.

endDate  string optional  

End date for search by date range.

subjectIds  string[] optional  

of subject ids to match.

educationLevelIds  string[] optional  

of education level ids to match.

authorTagsIds  string[] optional  

of author tags ids to match.

h5pLibraries  string[] optional  

of h5p libraries to match.

model  string optional  

Index to filter by.

sort  string optional  

Field to sort by.

order  string optional  

Order to sort by.

from  string optional  

Index where the pagination start from.

size  integer optional  

Number of records to return.

Body Parameters

searchType  string  

Must be one of my_projects, showcase_projects, org_projects, or lti_search.

query  string optional  

Must not be greater than 255 characters.

organization_id  integer  

negativeQuery  string optional  

Must not be greater than 255 characters.

indexing  string[] optional  

Must be one of null, 1, 2, or 3.

startDate  string optional  

Must be a valid date.

endDate  string optional  

Must be a valid date. Must be a date after or equal to startDate.

userIds  integer[] optional  

author  string optional  

Must not be greater than 255 characters.

h5pLibraries  string[] optional  

subjectIds  integer[] optional  

educationLevelIds  integer[] optional  

authorTagsIds  integer[] optional  

model  string optional  

Must be one of activities, playlists, or projects.

sort  string optional  

Must be one of created_at.

order  string optional  

Must be one of asc or desc.

from  integer optional  

size  integer optional  

Independent Activities search

Search for independent activities

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/search/independent-activities?searchType=my_activities&indexing=null&author=Abby&organization_id=1&query=test&negativeQuery=badword&userIds[]=1&startDate=2020-04-30+00%3A00%3A00&endDate=2020-04-30+23%3A59%3A59&subjectIds[]=1&educationLevelIds[]=1&authorTagsIds[]=1&h5pLibraries[]=atque&sort=created_at&order=desc&from=0&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"searchType\": \"org_activities\",
    \"query\": \"gymajnhee\",
    \"organization_id\": 18,
    \"negativeQuery\": \"mvkvabiohscrmaqobdblbpkgnorwayvmdrlmswwukjkrmcfbkkfqxvwcaevllpqhgxkrcwbmpkzsvggtqqrikhgkqvvgpupiyiahxzwsrywpwgyhgpfftxqaugfyyfvhirnaarozzawbshodhodxnnbhufsncgtforgonrhauheajrjdnfbjnstzzevxuswgxzvvzvjcejjptiaulcsgatqkcmlhvirua\",
    \"indexing\": \"1\",
    \"startDate\": \"2022-12-01T09:55:04\",
    \"endDate\": \"2060-09-11\",
    \"userIds\": [
        8
    ],
    \"author\": \"zqjfgdpleitdsexzuyhehdigmaybnzowtsnhysnudcflvkayonkwrmrldbwivigzghqtgmauojkikzuettcyjmsutummgjanzszffdldmqljhkchbbdmxiewdlkpfxytctocdpttsoxpftlzrvbswzlgkvbgvwetptxzoefnntccr\",
    \"h5pLibraries\": [
        \"qui\"
    ],
    \"subjectIds\": [
        5
    ],
    \"educationLevelIds\": [
        13
    ],
    \"authorTagsIds\": [
        20
    ],
    \"sort\": \"created_at\",
    \"order\": \"desc\",
    \"from\": 4,
    \"size\": 15
}"
const url = new URL(
    "http://localhost:8000/api/v1/search/independent-activities"
);

const params = {
    "searchType": "my_activities",
    "indexing": "null",
    "author": "Abby",
    "organization_id": "1",
    "query": "test",
    "negativeQuery": "badword",
    "userIds[]": "1",
    "startDate": "2020-04-30 00:00:00",
    "endDate": "2020-04-30 23:59:59",
    "subjectIds[]": "1",
    "educationLevelIds[]": "1",
    "authorTagsIds[]": "1",
    "h5pLibraries[]": "atque",
    "sort": "created_at",
    "order": "desc",
    "from": "0",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "searchType": "org_activities",
    "query": "gymajnhee",
    "organization_id": 18,
    "negativeQuery": "mvkvabiohscrmaqobdblbpkgnorwayvmdrlmswwukjkrmcfbkkfqxvwcaevllpqhgxkrcwbmpkzsvggtqqrikhgkqvvgpupiyiahxzwsrywpwgyhgpfftxqaugfyyfvhirnaarozzawbshodhodxnnbhufsncgtforgonrhauheajrjdnfbjnstzzevxuswgxzvvzvjcejjptiaulcsgatqkcmlhvirua",
    "indexing": "1",
    "startDate": "2022-12-01T09:55:04",
    "endDate": "2060-09-11",
    "userIds": [
        8
    ],
    "author": "zqjfgdpleitdsexzuyhehdigmaybnzowtsnhysnudcflvkayonkwrmrldbwivigzghqtgmauojkikzuettcyjmsutummgjanzszffdldmqljhkchbbdmxiewdlkpfxytctocdpttsoxpftlzrvbswzlgkvbgvwetptxzoefnntccr",
    "h5pLibraries": [
        "qui"
    ],
    "subjectIds": [
        5
    ],
    "educationLevelIds": [
        13
    ],
    "authorTagsIds": [
        20
    ],
    "sort": "created_at",
    "order": "desc",
    "from": 4,
    "size": 15
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/search/independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'searchType'=> 'my_activities',
            'indexing'=> 'null',
            'author'=> 'Abby',
            'organization_id'=> '1',
            'query'=> 'test',
            'negativeQuery'=> 'badword',
            'userIds[]'=> '1',
            'startDate'=> '2020-04-30 00:00:00',
            'endDate'=> '2020-04-30 23:59:59',
            'subjectIds[]'=> '1',
            'educationLevelIds[]'=> '1',
            'authorTagsIds[]'=> '1',
            'h5pLibraries[]'=> 'atque',
            'sort'=> 'created_at',
            'order'=> 'desc',
            'from'=> '0',
            'size'=> '10',
        ],
        'json' => [
            'searchType' => 'org_activities',
            'query' => 'gymajnhee',
            'organization_id' => 18,
            'negativeQuery' => 'mvkvabiohscrmaqobdblbpkgnorwayvmdrlmswwukjkrmcfbkkfqxvwcaevllpqhgxkrcwbmpkzsvggtqqrikhgkqvvgpupiyiahxzwsrywpwgyhgpfftxqaugfyyfvhirnaarozzawbshodhodxnnbhufsncgtforgonrhauheajrjdnfbjnstzzevxuswgxzvvzvjcejjptiaulcsgatqkcmlhvirua',
            'indexing' => '1',
            'startDate' => '2022-12-01T09:55:04',
            'endDate' => '2060-09-11',
            'userIds' => [
                8,
            ],
            'author' => 'zqjfgdpleitdsexzuyhehdigmaybnzowtsnhysnudcflvkayonkwrmrldbwivigzghqtgmauojkikzuettcyjmsutummgjanzszffdldmqljhkchbbdmxiewdlkpfxytctocdpttsoxpftlzrvbswzlgkvbgvwetptxzoefnntccr',
            'h5pLibraries' => [
                'qui',
            ],
            'subjectIds' => [
                5,
            ],
            'educationLevelIds' => [
                13,
            ],
            'authorTagsIds' => [
                20,
            ],
            'sort' => 'created_at',
            'order' => 'desc',
            'from' => 4,
            'size' => 15,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": {
        "userIds": [
            "The user Ids must be an array."
        ]
    }
}
 

Example response (200):


{
    "data": [
        {
            "id": 1,
            "thumb_url": null,
            "title": "title",
            "created_at": "2022-04-27 23:51:58",
            "user": {
                "email": "abby@curriki.org",
                "first_name": "Abby",
                "id": 3,
                "last_name": "_"
            },
            "organization": {
                "id": 1,
                "name": "org name 1",
                "description": "org description 1",
                "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg"
            }
        }
    ],
    "meta": {
        "total": 1
    }
}
 

Request      

GET api/v1/search/independent-activities

Query Parameters

searchType  string  

It can be my_activities, showcase_activities, org_activities

indexing  string optional  

It can be one of the indexing options

author  string optional  

The user name to filter by

organization_id  string  

The Id of a organization

query  string optional  

Query to search.

negativeQuery  string optional  

Terms that should not exist.

userIds  string[] optional  

of user ids to match.

startDate  string optional  

Start date for search by date range.

endDate  string optional  

End date for search by date range.

subjectIds  string[] optional  

of subject ids to match.

educationLevelIds  string[] optional  

of education level ids to match.

authorTagsIds  string[] optional  

of author tags ids to match.

h5pLibraries  string[] optional  

of h5p libraries to match.

sort  string optional  

Field to sort by.

order  string optional  

Order to sort by.

from  string optional  

Index where the pagination start from.

size  integer optional  

Number of records to return.

Body Parameters

searchType  string  

Must be one of my_activities, showcase_activities, org_activities, or lti_search.

query  string optional  

Must not be greater than 255 characters.

organization_id  integer  

negativeQuery  string optional  

Must not be greater than 255 characters.

indexing  string[] optional  

Must be one of null, 1, 2, or 3.

startDate  string optional  

Must be a valid date.

endDate  string optional  

Must be a valid date. Must be a date after or equal to startDate.

userIds  integer[] optional  

author  string optional  

Must not be greater than 255 characters.

h5pLibraries  string[] optional  

subjectIds  integer[] optional  

educationLevelIds  integer[] optional  

authorTagsIds  integer[] optional  

sort  string optional  

Must be one of created_at.

order  string optional  

Must be one of asc or desc.

from  integer optional  

size  integer optional  

14. CurrikiGo Outcome

APIs for generating outcomes against students' submissions.

Get Student Results Grouped Summary

Fetch LRS statements based on parameters, and generate a student result summary

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/outcome/summary" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"actor\": \"est\",
    \"activity\": \"dolorem\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/outcome/summary"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "actor": "est",
    "activity": "dolorem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/outcome/summary',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'actor' => 'est',
            'activity' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


{
    "errors": [
        "No results found."
    ]
}
 

Example response (200):


{
    "summary": [
        [
            {
                "sub-content-id": "a89d2ee5-0763-4b03-8a4a-ccbda9b00c3e",
                "relation-sub-content-id": "a89d2ee5-0763-4b03-8a4a-ccbda9b00c3e",
                "library": "H5P.TrueFalse 1.6",
                "content-type": "True/False Question",
                "title": "CP - True/False question",
                "content": {
                    "questions": "<p>Is 5 x 100 = 500?</p>\n"
                },
                "answer": [
                    {
                        "name": "CP - True/False question",
                        "score": {
                            "raw": 1,
                            "max": 1
                        },
                        "duration": "00:00",
                        "ending-point": "00:01",
                        "verb": "answered"
                    }
                ]
            },
            {
                "sub-content-id": "3495a536-de1f-47a2-91d8-6010910b64d0",
                "relation-sub-content-id": "3495a536-de1f-47a2-91d8-6010910b64d0",
                "library": "H5P.MultiChoice 1.14",
                "content-type": "Multiple Choice",
                "title": "CP - Multiple Choice Quiz",
                "content": {
                    "questions": "<p>Which of the following statements are correct?</p>\n"
                },
                "answer": [
                    {
                        "name": "CP - Multiple Choice Quiz",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "00:04",
                        "ending-point": "00:01",
                        "verb": "answered"
                    }
                ]
            },
            {
                "sub-content-id": "6e7df1b6-3b10-44f0-adc8-d6cc58e59c5b",
                "relation-sub-content-id": "6e7df1b6-3b10-44f0-adc8-d6cc58e59c5b",
                "library": "H5P.SingleChoiceSet 1.11",
                "content-type": "Single Choice Set",
                "title": "CP - Single Choice Set",
                "content": {
                    "children": [
                        {
                            "sub-content-id": "e6c0a1a4-b38e-4672-aadc-2aa4bee0d459",
                            "relation-sub-content-id": "6e7df1b6-3b10-44f0-adc8-d6cc58e59c5b|e6c0a1a4-b38e-4672-aadc-2aa4bee0d459",
                            "question": "<p>2 + 2 = ?</p>\n",
                            "answers": [
                                "<p>4</p>\n",
                                "<p>10</p>\n",
                                "<p>22</p>\n"
                            ]
                        },
                        {
                            "sub-content-id": "4e60ed79-c713-4c21-8903-a5e6f2b80a59",
                            "relation-sub-content-id": "6e7df1b6-3b10-44f0-adc8-d6cc58e59c5b|4e60ed79-c713-4c21-8903-a5e6f2b80a59",
                            "question": "<p>5 x 10 = ?</p>\n",
                            "answers": [
                                "<p>50</p>\n",
                                "<p>510</p>\n",
                                "<p>15</p>\n"
                            ]
                        }
                    ]
                },
                "answer": [
                    {
                        "name": "CP - Single Choice Set",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "00:09",
                        "ending-point": "00:01",
                        "verb": "answered"
                    }
                ]
            }
        ],
        [
            {
                "sub-content-id": "e5229334-ca8b-4807-bf13-0002e9cba0fa",
                "relation-sub-content-id": "e5229334-ca8b-4807-bf13-0002e9cba0fa",
                "library": "H5P.Blanks 1.12",
                "content-type": "Fill in the Blanks",
                "title": "IB &gt; CP &gt; Fill in the Blanks",
                "content": {
                    "text": "<p>CP - Fill in the missing words #1</p>\n",
                    "questions": [
                        "<p>New Dehli is the capitol of *India*</p>\n",
                        "<p>H5P content may be edited using a *browser/web-browser:Something you use every day*.</p>\n"
                    ]
                },
                "answer": [
                    {
                        "name": "IB &gt; CP &gt; Fill in the Blanks",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "00:14",
                        "ending-point": "00:02",
                        "verb": "answered"
                    }
                ]
            },
            {
                "sub-content-id": "d5eb9385-5418-41ed-96a0-0309ca11d99e",
                "relation-sub-content-id": "d5eb9385-5418-41ed-96a0-0309ca11d99e",
                "library": "H5P.DragQuestion 1.13",
                "content-type": "Drag and Drop",
                "title": "CP - Drag and Drop",
                "content": [],
                "answer": [
                    {
                        "name": "CP - Drag and Drop",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "00:07",
                        "ending-point": "00:02",
                        "verb": "answered"
                    }
                ]
            },
            {
                "sub-content-id": "d8c0aa84-95e5-48b0-96b5-707948f0e14f",
                "relation-sub-content-id": "d8c0aa84-95e5-48b0-96b5-707948f0e14f",
                "library": "H5P.MarkTheWords 1.9",
                "content-type": "Mark the Words",
                "title": "CP - Mark the Words",
                "content": {
                    "description": "<p>Mark the articles in the sentences below:</p>\n",
                    "text": "<p>*The* correct words are marked like this: correctword, *an* asterisk is written like this **.&nbsp;</p>\n"
                },
                "answer": [
                    {
                        "name": "CP - Mark the Words",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "00:04",
                        "ending-point": "00:02",
                        "verb": "answered"
                    }
                ]
            }
        ],
        [
            {
                "sub-content-id": "86111a02-4be4-4acf-9037-25165975f59b",
                "relation-sub-content-id": "86111a02-4be4-4acf-9037-25165975f59b",
                "library": "H5P.DragText 1.8",
                "content-type": "Drag Text",
                "title": "CP - Drag Text",
                "content": {
                    "description": "Drag the words into the correct boxes"
                },
                "answer": [
                    {
                        "name": "CP - Drag Text",
                        "score": {
                            "raw": 2,
                            "max": 2
                        },
                        "duration": "01:37",
                        "ending-point": "00:03",
                        "verb": "answered"
                    }
                ]
            },
            {
                "sub-content-id": "bf355dbb-8ec7-460b-aefd-439ca4319719",
                "relation-sub-content-id": "bf355dbb-8ec7-460b-aefd-439ca4319719",
                "library": "H5P.Summary 1.10",
                "content-type": "Summary",
                "title": "CP - Summary",
                "content": {
                    "title": "Choose the correct statement.",
                    "children": [
                        {
                            "sub-content-id": "6e003430-0edc-4a54-b8f9-e124b119a92a",
                            "relation-sub-content-id": "bf355dbb-8ec7-460b-aefd-439ca4319719|6e003430-0edc-4a54-b8f9-e124b119a92a",
                            "question": [
                                "<p>5 x 5 = 25</p>\n",
                                "<p>5 x 20 = 80</p>\n"
                            ]
                        }
                    ]
                },
                "answer": [
                    {
                        "name": "CP - Summary",
                        "score": {
                            "raw": 1,
                            "max": 1
                        },
                        "duration": "01:01:57",
                        "ending-point": "00:03",
                        "verb": "answered"
                    }
                ]
            }
        ],
        [
            {
                "sub-content-id": "4d49d34d-d4f3-4710-8842-a882f837d6dd",
                "relation-sub-content-id": "4d49d34d-d4f3-4710-8842-a882f837d6dd",
                "library": "H5P.AdvancedText 1.1",
                "content-type": "Text",
                "title": "CP Text",
                "content": []
            },
            {
                "sub-content-id": "0dee6a0a-36aa-445c-a362-8a5c9c9d7791",
                "relation-sub-content-id": "0dee6a0a-36aa-445c-a362-8a5c9c9d7791",
                "library": "H5P.Link 1.3",
                "content-type": "Link",
                "title": "Link",
                "content": {
                    "title": "Link to google"
                }
            },
            {
                "sub-content-id": "c6ef9040-4cad-49f6-a359-4ac7f18a49cd",
                "relation-sub-content-id": "c6ef9040-4cad-49f6-a359-4ac7f18a49cd",
                "library": "H5P.Image 1.1",
                "content-type": "Image",
                "title": "CP Image",
                "content": []
            },
            {
                "sub-content-id": "06f169ef-2de1-4f3e-b6fd-ed20837cd3c6",
                "relation-sub-content-id": "06f169ef-2de1-4f3e-b6fd-ed20837cd3c6",
                "library": "H5P.Shape 1.0",
                "content-type": "Shapes",
                "title": "Rectangle Shapes",
                "content": []
            },
            {
                "sub-content-id": "cf3cef4e-5d9d-473d-b72c-091f6a00bb7d",
                "relation-sub-content-id": "cf3cef4e-5d9d-473d-b72c-091f6a00bb7d",
                "library": "H5P.Video 1.5",
                "content-type": "Video",
                "title": "CP &gt; Video",
                "content": []
            },
            {
                "sub-content-id": "96a735b1-8220-441f-9195-c0dc8536955b",
                "relation-sub-content-id": "96a735b1-8220-441f-9195-c0dc8536955b",
                "library": "H5P.Audio 1.4",
                "content-type": "Audio",
                "title": "CP &gt; Test Audio",
                "content": []
            }
        ],
        [
            {
                "sub-content-id": "a9d77f51-1e94-4be0-bf14-defc7de2b93b",
                "relation-sub-content-id": "a9d77f51-1e94-4be0-bf14-defc7de2b93b",
                "library": "H5P.Dialogcards 1.8",
                "content-type": "Dialog Cards",
                "title": "CP - Dialog Cards",
                "content": {
                    "title": "<p>CP - Dialog Cards</p>\n"
                }
            },
            {
                "sub-content-id": "5fffdfcd-3794-45f4-a0e5-49e8fc55dae8",
                "relation-sub-content-id": "5fffdfcd-3794-45f4-a0e5-49e8fc55dae8",
                "library": "H5P.TwitterUserFeed 1.0",
                "content-type": "Twitter User Feed",
                "title": "Twitter User Feed",
                "content": []
            },
            {
                "sub-content-id": "17ba5347-61df-4151-a833-8cf9d0718c07",
                "relation-sub-content-id": "17ba5347-61df-4151-a833-8cf9d0718c07",
                "library": "H5P.Table 1.1",
                "content-type": "Table",
                "title": "CP Table",
                "content": []
            },
            {
                "sub-content-id": "2932aab9-ce54-4be2-a1b7-9257483829f1",
                "relation-sub-content-id": "2932aab9-ce54-4be2-a1b7-9257483829f1",
                "library": "H5P.ExportableTextArea 1.3",
                "content-type": "Exportable Text Area",
                "title": "CP Exportable Text Area",
                "content": []
            }
        ],
        [
            {
                "sub-content-id": "495b1089-b7d1-47fd-ae2d-9b55273780c9",
                "relation-sub-content-id": "495b1089-b7d1-47fd-ae2d-9b55273780c9",
                "library": "H5P.ContinuousText 1.2",
                "content-type": "Continuous Text",
                "title": "CP &gt; Continuous Text",
                "content": []
            }
        ],
        [
            {
                "sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e",
                "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e",
                "library": "H5P.InteractiveVideo 1.22",
                "content-type": "Interactive Video",
                "title": "CP - Interactive Video",
                "content": [
                    {
                        "sub-content-id": "6824967c-9282-4d12-bcc5-ad0bced64d2f",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|6824967c-9282-4d12-bcc5-ad0bced64d2f",
                        "library": "H5P.TrueFalse 1.6",
                        "content-type": "True/False Question",
                        "title": "CP &gt; IV&gt; True/False question",
                        "content": {
                            "questions": "<p>Is 5 x 100 = 500?</p>\n"
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV&gt; True/False question",
                                "score": {
                                    "raw": 1,
                                    "max": 1
                                },
                                "duration": "00:02",
                                "ending-point": "00:00",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "88c60326-825c-4992-80da-b86af8e997a1",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|88c60326-825c-4992-80da-b86af8e997a1",
                        "library": "H5P.MultiChoice 1.14",
                        "content-type": "Multiple Choice",
                        "title": "CP &gt; IV &gt; Multiple Choice Quiz",
                        "content": {
                            "questions": "<p>Which of the following statements are correct?</p>\n"
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Multiple Choice Quiz",
                                "score": {
                                    "raw": 0,
                                    "max": 2
                                },
                                "duration": "00:03",
                                "ending-point": "00:05",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "4961cd7d-03ef-4dd6-8b8f-59b908e70b8a",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|4961cd7d-03ef-4dd6-8b8f-59b908e70b8a",
                        "library": "H5P.SingleChoiceSet 1.11",
                        "content-type": "Single Choice Set",
                        "title": "CP &gt; IV &gt; Single Choice Set",
                        "content": {
                            "children": [
                                {
                                    "sub-content-id": "e6c0a1a4-b38e-4672-aadc-2aa4bee0d459",
                                    "relation-sub-content-id": "4961cd7d-03ef-4dd6-8b8f-59b908e70b8a|e6c0a1a4-b38e-4672-aadc-2aa4bee0d459",
                                    "question": "<p>2 + 2 = ?</p>\n",
                                    "answers": [
                                        "<p>4</p>\n",
                                        "<p>10</p>\n",
                                        "<p>22</p>\n"
                                    ]
                                },
                                {
                                    "sub-content-id": "4e60ed79-c713-4c21-8903-a5e6f2b80a59",
                                    "relation-sub-content-id": "4961cd7d-03ef-4dd6-8b8f-59b908e70b8a|4e60ed79-c713-4c21-8903-a5e6f2b80a59",
                                    "question": "<p>5 x 10 = ?</p>\n",
                                    "answers": [
                                        "<p>50</p>\n",
                                        "<p>510</p>\n",
                                        "<p>15</p>\n"
                                    ]
                                }
                            ]
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Single Choice Set",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "00:10",
                                "ending-point": "00:09",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "03b1f5f1-c70c-4ae6-9c76-8dd308800f67",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|03b1f5f1-c70c-4ae6-9c76-8dd308800f67",
                        "library": "H5P.Blanks 1.12",
                        "content-type": "Fill in the Blanks",
                        "title": "CP &gt; IV &gt; Fill in the Blanks",
                        "content": {
                            "text": "<p>CP &gt; IV &gt; Fill in the missing words #1</p>\n",
                            "questions": [
                                "<p>New Dehli is the capitol of *India*</p>\n",
                                "<p>H5P content may be edited using a *browser/web-browser:Something you use every day*.</p>\n"
                            ]
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Fill in the Blanks",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "00:06",
                                "ending-point": "00:18",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "f5ee0f8d-f235-4c2b-ae57-97853b1496ae",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|f5ee0f8d-f235-4c2b-ae57-97853b1496ae",
                        "library": "H5P.DragQuestion 1.13",
                        "content-type": "Drag and Drop",
                        "title": "CP &gt; IV &gt; Drag and Drop",
                        "content": [],
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Drag and Drop",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "00:03",
                                "ending-point": "00:20",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "7b5ae8d2-84e9-47d5-b147-daa1c26e499a",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|7b5ae8d2-84e9-47d5-b147-daa1c26e499a",
                        "library": "H5P.MarkTheWords 1.9",
                        "content-type": "Mark the Words",
                        "title": "CP &gt; IV &gt; Mark the Words",
                        "content": {
                            "description": "<p>Mark the articles in the sentences below:</p>\n",
                            "text": "<p>*The* correct words are marked like this: correctword, *an* asterisk is written like this **.&nbsp;</p>\n"
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Mark the Words",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "00:04",
                                "ending-point": "00:23",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "55a4933b-d2fb-4c77-bfb3-1eab67b0ad14",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|55a4933b-d2fb-4c77-bfb3-1eab67b0ad14",
                        "library": "H5P.DragText 1.8",
                        "content-type": "Drag Text",
                        "title": "CP &gt; IV &gt; Drag Text",
                        "content": {
                            "description": "Drag the words into the correct boxes"
                        },
                        "answer": [
                            {
                                "name": "CP &gt; IV &gt; Drag Text",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "01:05",
                                "ending-point": "00:26",
                                "verb": "answered"
                            }
                        ]
                    },
                    {
                        "sub-content-id": "f6839abe-d5d1-41cb-85a4-c19c49a4583e",
                        "relation-sub-content-id": "02b3bee1-61c4-496a-9b6b-3d4ae1f43f4e|f6839abe-d5d1-41cb-85a4-c19c49a4583e",
                        "library": "H5P.Summary 1.10",
                        "content-type": "Summary",
                        "title": "IB &gt; IV &gt; Summary",
                        "content": {
                            "title": "Choose the correct statement.",
                            "children": [
                                {
                                    "sub-content-id": "8146ae19-549a-4f79-8165-30573f8f8769",
                                    "relation-sub-content-id": "f6839abe-d5d1-41cb-85a4-c19c49a4583e|8146ae19-549a-4f79-8165-30573f8f8769",
                                    "question": [
                                        "<p>8+9 = 17</p>\n",
                                        "<p>10 x 2 = 12</p>\n",
                                        "<p>13 x 13 = 149</p>\n"
                                    ]
                                },
                                {
                                    "sub-content-id": "6afe0b3b-9af7-41ab-8506-017ae8b89375",
                                    "relation-sub-content-id": "f6839abe-d5d1-41cb-85a4-c19c49a4583e|6afe0b3b-9af7-41ab-8506-017ae8b89375",
                                    "question": [
                                        "<p>4 x 2 = 8</p>\n",
                                        "<p>5 x 6 = 31</p>\n",
                                        "<p>10 / 2 = 4</p>\n"
                                    ]
                                }
                            ]
                        },
                        "answer": [
                            {
                                "name": "IB &gt; IV &gt; Summary",
                                "score": {
                                    "raw": 2,
                                    "max": 2
                                },
                                "duration": "00:05",
                                "ending-point": "00:27",
                                "verb": "answered"
                            }
                        ]
                    }
                ],
                "answer": [
                    {
                        "name": "CP - Interactive Video",
                        "score": {
                            "raw": 13,
                            "max": 15
                        },
                        "duration": "01:22",
                        "ending-point": "00:07",
                        "verb": "answered"
                    }
                ]
            }
        ]
    ]
}
 

Request      

POST api/v1/outcome/summary

Body Parameters

actor  string  

activity  string  

15. Google Classroom

APIs for Google Classroom

Save Access Token

Save GAPI access token in the database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/access-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"minima\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/access-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "minima"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/access-token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'minima',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Access token has been saved successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to save the token."
    ]
}
 

Request      

POST api/v1/google-classroom/access-token

Body Parameters

access_token  string  

The stringified of the GAPI access token JSON object

Get Courses

Get all existing Google Classroom Courses

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/google-classroom/courses" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/courses"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/google-classroom/courses',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Service exception error"
    ]
}
 

Example response (200):


{
    "courses": [
        {
            "id": "1",
            "name": "How to build a playlist in CurrikiStudio"
        },
        {
            "id": "2",
            "name": "Partner Content Projects"
        },
        {
            "id": "3",
            "name": "Our Great BIg Back Yard"
        },
        {
            "id": "4",
            "name": "Alice in Wonderland"
        }
    ]
}
 

Request      

GET api/v1/google-classroom/courses

Copy project to Google Classroom

Copy whole project to google classroom either as a new course or into an existing course.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/projects/3024/copy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"course_id\": \"123\",
    \"access_token\": \"123\",
    \"publisher_org\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/projects/3024/copy"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "course_id": "123",
    "access_token": "123",
    "publisher_org": 10
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/projects/3024/copy',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'course_id' => '123',
            'access_token' => '123',
            'publisher_org' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (403):


{
    "errors": [
        "Forbidden. You are trying to share other user's project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to copy project."
    ]
}
 

Example response (200):


{
    "course": {
        "id": "158432479402",
        "name": "Partner Content Projects",
        "topics": [
            {
                "course_id": "158432479402",
                "topic_id": "158409588847",
                "name": "NBC Learn",
                "course_work": [
                    {
                        "id": "158442674345",
                        "course_id": "158432479402",
                        "description": null,
                        "topic_id": "158409588847",
                        "title": "Test Activity 1 - 1",
                        "state": "PUBLISHED",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "https://www.currikistudio.org/shared/activity/10"
                                }
                            }
                        ],
                        "max_points": null
                    },
                    {
                        "id": "158442674350",
                        "course_id": "158432479402",
                        "description": null,
                        "topic_id": "158409588847",
                        "title": "Test Activity 1 - 0",
                        "state": "PUBLISHED",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "https://www.currikistudio.org/shared/activity/9"
                                }
                            }
                        ],
                        "max_points": null
                    }
                ]
            },
            {
                "course_id": "158432479402",
                "topic_id": "158410401228",
                "name": "Internal",
                "course_work": [
                    {
                        "id": "158443047525",
                        "course_id": "158432479402",
                        "description": null,
                        "topic_id": "158410401228",
                        "title": "Test Activity 1 - 0",
                        "state": "PUBLISHED",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "https://www.currikistudio.org/shared/activity/11"
                                }
                            }
                        ],
                        "max_points": null
                    }
                ]
            }
        ]
    }
}
 

Request      

POST api/v1/google-classroom/projects/{project_id}/copy

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project.

Body Parameters

course_id  string optional  

Id of an existing Google Classroom course.

access_token  string optional  

The stringified of the GAPI access token JSON object

publisher_org  integer optional  

Get Courses Topics

Get existing Google Classroom Course Topics

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/google-classroom/topics" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/topics"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/google-classroom/topics',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/google-classroom/topics

Publish playlist To Google Classroom

To Publish playlist To Google Classroom

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"course_id\": \"123\",
    \"topic_id\": \"123\",
    \"publisher_org\": 17,
    \"access_token\": \"animi\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "course_id": "123",
    "topic_id": "123",
    "publisher_org": 17,
    "access_token": "animi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'course_id' => '123',
            'topic_id' => '123',
            'publisher_org' => 17,
            'access_token' => 'animi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (403):


{
    "errors": [
        "Forbidden. You are trying to share other user's project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to copy playlist."
    ]
}
 

Example response (200):


{
    "course": {
        "id": "422473650924",
        "name": "Activity Sampler",
        "topics": [
            {
                "course_id": "422473650924",
                "topic_id": "422474476539",
                "name": "Questions",
                "course_work": [
                    {
                        "id": "422473053485",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Advanced Fill In the Blank",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39449/7062"
                                }
                            }
                        ],
                        "max_points": 100
                    },
                    {
                        "id": "422474476548",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Arithmetic Quiz",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39450/7063"
                                }
                            }
                        ],
                        "max_points": 100
                    },
                    {
                        "id": "422474036071",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Dialog Cards",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39452/7064"
                                }
                            }
                        ],
                        "max_points": 100
                    }
                ]
            }
        ]
    }
}
 

Request      

POST api/v1/google-classroom/projects/{project_id}/playlists/{playlist_id}/publish

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

project  integer  

The Id of a project.

playlist  integer  

The Id of a playlist.

Body Parameters

course_id  string optional  

The Google Classroom course id

topic_id  string optional  

The Google Classroom topic id

publisher_org  integer optional  

access_token  string optional  

The stringified of the GAPI access token JSON object

Publish activity To Google Classroom

To Publish activity To Google Classroom under a specific topic

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/activities/761/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"course_id\": \"532068611011\",
    \"topic_id\": \"532068611011\",
    \"publisher_org\": 16,
    \"access_token\": \"jhdfsy7dshduHHJG6\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/activities/761/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "course_id": "532068611011",
    "topic_id": "532068611011",
    "publisher_org": 16,
    "access_token": "jhdfsy7dshduHHJG6"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/projects/3024/playlists/186/activities/761/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'course_id' => '532068611011',
            'topic_id' => '532068611011',
            'publisher_org' => 16,
            'access_token' => 'jhdfsy7dshduHHJG6',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (403):


{
    "errors": [
        "Forbidden. You are trying to share other user's project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to copy playlist."
    ]
}
 

Example response (200):


{
    "course": {
        "id": "422473650924",
        "name": "Activity Sampler",
        "topics": [
            {
                "course_id": "422473650924",
                "topic_id": "422474476539",
                "name": "Questions",
                "course_work": [
                    {
                        "id": "422473053485",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Advanced Fill In the Blank",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39449/7062"
                                }
                            }
                        ],
                        "max_points": 100
                    },
                    {
                        "id": "422474476548",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Arithmetic Quiz",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39450/7063"
                                }
                            }
                        ],
                        "max_points": 100
                    }
                ]
            }
        ]
    }
}
 

Request      

POST api/v1/google-classroom/projects/{project_id}/playlists/{playlist_id}/activities/{activity_id}/publish

URL Parameters

project_id  integer  

The ID of the project.

playlist_id  integer  

The ID of the playlist.

activity_id  integer  

The ID of the activity.

project  integer  

The Id of a project.

playlist  integer  

The Id of a playlist.

activity  integer  

The Id of a activity.

Body Parameters

course_id  string optional  

The Google Classroom course id.

topic_id  string optional  

The Google Classroom topic id.

publisher_org  integer optional  

access_token  string optional  

The stringified of the GAPI access token JSON object.

Publish independent activity To Google Classroom

To Publish independent activity To Google Classroom under a specific class or specific classwork

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/activities/761/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"course_id\": \"et\",
    \"topic_id\": \"laborum\",
    \"publisher_org\": 11,
    \"access_token\": \"532068611011\",
    \"string\": \"532103337862\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/activities/761/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "course_id": "et",
    "topic_id": "laborum",
    "publisher_org": 11,
    "access_token": "532068611011",
    "string": "532103337862"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/activities/761/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'course_id' => 'et',
            'topic_id' => 'laborum',
            'publisher_org' => 11,
            'access_token' => '532068611011',
            'string' => '532103337862',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (403):


{
    "errors": [
        "Forbidden. You are trying to share other user's project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to copy publish."
    ]
}
 

Example response (200):


{
    "course": {
        "id": "422473650924",
        "name": "Activity Sampler",
        "topics": [
            {
                "course_id": "422473650924",
                "topic_id": "422474476539",
                "name": "Questions",
                "course_work": [
                    {
                        "id": "422473053485",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Advanced Fill In the Blank",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39449/7062"
                                }
                            }
                        ],
                        "max_points": 100
                    },
                    {
                        "id": "422474476548",
                        "course_id": "422473650924",
                        "description": null,
                        "topic_id": "422474476539",
                        "title": "Arithmetic Quiz",
                        "state": "DRAFT",
                        "work_type": "ASSIGNMENT",
                        "materials": [
                            {
                                "link": {
                                    "thumbnailUrl": null,
                                    "title": null,
                                    "url": "http://localhost:3000/gclass/launch/3/422473650924/39450/7063"
                                }
                            }
                        ],
                        "max_points": 100
                    }
                ]
            }
        ]
    }
}
 

Request      

POST api/v1/google-classroom/activities/{independent_activity_id}/publish

URL Parameters

independent_activity_id  integer  

The ID of the independent activity.

independent_activity  integer  

The Id of a independentActivity.

Body Parameters

course_id  string optional  

topic_id  string optional  

publisher_org  integer optional  

access_token  string optional  

The stringified of the GAPI access token JSON object.

string  topic_id optional  

The Google Classroom topic id

TurnIn a student's submission

Identifies student's submission on a classwork assignment. Attaches a summary page link to the assignment, and turns it in.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/turnin/11" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"doloremque\",
    \"course_id\": \"mollitia\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/turnin/11"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "doloremque",
    "course_id": "mollitia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/turnin/11',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'doloremque',
            'course_id' => 'mollitia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The assignment has been turned in successfully."
}
 

Example response (500):


{
    "errors": [
        "Could not retrieve submission for this assignment.",
        "You are not enrolled in this class."
    ]
}
 

Request      

POST api/v1/google-classroom/turnin/{classwork_id}

URL Parameters

classwork_id  integer  

The ID of the classwork.

classwork  string  

The Id of a classwork.

Body Parameters

access_token  string  

The stringified of the GAPI access token JSON object

course_id  string  

The Google Classroom course id

Verify whether Google Classroom user has access to a student's submission

If the user is a teacher, validate if he's one of the teachers in the class If the user is authenticated and is a student, validate if the submission is his.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/validate-summary-access" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"velit\",
    \"course_id\": \"totam\",
    \"gc_classwork_id\": \"quia\",
    \"gc_submission_id\": \"voluptas\",
    \"student_id\": \"at\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/validate-summary-access"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "velit",
    "course_id": "totam",
    "gc_classwork_id": "quia",
    "gc_submission_id": "voluptas",
    "student_id": "at"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/validate-summary-access',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'velit',
            'course_id' => 'totam',
            'gc_classwork_id' => 'quia',
            'gc_submission_id' => 'voluptas',
            'student_id' => 'at',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


{
    "errors": [
        "Either the entity was not found or you do not have permission to view it."
    ]
}
 

Example response (200):


{
    "student": {
        "id": "102628873478251109814",
        "email": "samstud89@gmail.com"
    }
}
 

Request      

POST api/v1/google-classroom/validate-summary-access

Body Parameters

access_token  string  

The stringified of the GAPI access token JSON object

course_id  string  

The Google Classroom course id

gc_classwork_id  string  

The Id of the classwork

gc_submission_id  string  

The Id of the student's submission

student_id  The optional  

google user id for the student

Get student's submission against a classwork

Identifies student's submission on a classwork assignment.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/google-classroom/classwork/14/submission" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"incidunt\",
    \"course_id\": \"ipsum\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/classwork/14/submission"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "incidunt",
    "course_id": "ipsum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/google-classroom/classwork/14/submission',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'incidunt',
            'course_id' => 'ipsum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "You are not enrolled in this class."
    ]
}
 

Example response (500):


{
    "errors": [
        "Could not retrieve submission for this assignment."
    ]
}
 

Example response (200):


{
    "submission": {
        "id": "Cg4I4uew5KIEEKa_h6_oBQ",
        "course_id": "199817397960",
        "coursework_id": "199814668198",
        "state": "RETURNED",
        "assigned_grade": 90
    }
}
 

Request      

POST api/v1/google-classroom/classwork/{classwork_id}/submission

URL Parameters

classwork_id  integer  

The ID of the classwork.

classwork  string  

The Id of a classwork.

Body Parameters

access_token  string  

The stringified of the GAPI access token JSON object

course_id  string  

The Google Classroom course id

H5P Google Classroom Resource Settings For Google Classroom

Get H5P Resource Settings For Google Classroom

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/google-classroom/activities/761/h5p-resource-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/google-classroom/activities/761/h5p-resource-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/google-classroom/activities/761/h5p-resource-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Activity not found."
    ]
}
 

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/google-classroom/activities/{activity_id}/h5p-resource-settings

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

The Id of a activity

16. XAPI Cron

Cron job for XAPI extract

xAPI extract job script

Runs the xAPI extract job script

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/xapi-extract" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/xapi-extract"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/xapi-extract',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "SQLSTATE[08006] [7] fe_sendauth: no password supplied (SQL: select * where \"voided\" = 0 and \"id\" > 0 order by \"id\" asc offset 0)",
    "exception": "Illuminate\\Database\\QueryException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
    "line": 712,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 672,
            "function": "runQueryCallback",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 376,
            "function": "run",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2414,
            "function": "select",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2402,
            "function": "runSelect",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2936,
            "function": "Illuminate\\Database\\Query\\{closure}",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
            "line": 2403,
            "function": "onceWithColumns",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Controllers\\Api\\V1\\CurrikiGo\\ExtractXAPIJSONController.php",
            "line": 54,
            "function": "get",
            "class": "Illuminate\\Database\\Query\\Builder",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php",
            "line": 54,
            "function": "runJob",
            "class": "App\\Http\\Controllers\\Api\\V1\\CurrikiGo\\ExtractXAPIJSONController",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php",
            "line": 45,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 262,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 721,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php",
            "line": 50,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/xapi-extract

17. Organization Permission Type API

APIs for Organization Permission Types

Get All Organization Permission Type

requires authentication

Get a list of the organization permission type.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"edit\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "edit"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'edit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 25,
            "name": "activity:edit",
            "display_name": "Edit Activity",
            "feature": "Activity"
        },
        {
            "id": 43,
            "name": "group:edit",
            "display_name": "Edit Group",
            "feature": "Group"
        },
        {
            "id": 1,
            "name": "organization:edit",
            "display_name": "Edit Organization",
            "feature": "Organization"
        },
        {
            "id": 19,
            "name": "playlist:edit",
            "display_name": "Edit Playlist",
            "feature": "Playlist"
        },
        {
            "id": 10,
            "name": "project:edit",
            "display_name": "Edit Project",
            "feature": "Project"
        },
        {
            "id": 31,
            "name": "team:edit",
            "display_name": "Edit Team",
            "feature": "Team"
        },
        {
            "id": 57,
            "name": "user:edit",
            "display_name": "Edit User",
            "feature": "User"
        }
    ]
}
 

Request      

GET api/v1/permissions

Body Parameters

query  string  

Query to search organization permission types against

18. Organization API

APIs for Organization

Get By Domain

Get organization by domain

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/organization/get-by-domain" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"domain\": \"curriki\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/organization/get-by-domain"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "domain": "curriki"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/organization/get-by-domain',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'domain' => 'curriki',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "domain": [
            "The selected domain is invalid."
        ]
    }
}
 

Example response (200):


{
    "organization": {
        "id": 16,
        "name": "nassau",
        "description": "nassau",
        "image": "/storage/organizations/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
        "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
        "domain": "nassau"
    }
}
 

Request      

GET api/v1/organization/get-by-domain

Body Parameters

domain  string  

Organization domain to get data for

Search organization by name

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/organizations/search" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"curriki\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/search"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "curriki"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/organizations/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'curriki',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

19. Suborganization API

APIs for Suborganization

User has permission

requires authentication

Check if user has the specified permission in the provided organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/user-has-permission" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"permission\": \"organization:view\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/user-has-permission"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "permission": "organization:view"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/user-has-permission',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'permission' => 'organization:view',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "userHasPermission": true
}
 

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "permission": [
            "The permission field is required."
        ]
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/user-has-permission

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

permission  string  

Permission to check user access

Get User Permissions

requires authentication

Get the logged-in user's permissions in the suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "permissions": {
        "activeRole": "non_editing_teacher",
        "roleId": 4,
        "Project": [
            "project:view"
        ],
        "Playlist": [
            "playlist:view"
        ],
        "Activity": [
            "activity:view"
        ]
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/permissions

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get Default Permissions

requires authentication

Get the all default permissions in the suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/default-permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/default-permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/default-permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "permissions": {
        "activeRole": "non_editing_teacher",
        "roleId": 4,
        "Project": [
            "project:view"
        ],
        "Playlist": [
            "playlist:view"
        ],
        "Activity": [
            "activity:view"
        ]
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/default-permissions

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Add Suborganization Role

requires authentication

Add role for the specified suborganization

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/add-role" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"member\",
    \"display_name\": \"Member\",
    \"permissions\": [
        1,
        2
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/add-role"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "member",
    "display_name": "Member",
    "permissions": [
        1,
        2
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/add-role',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'member',
            'display_name' => 'Member',
            'permissions' => [
                1,
                2,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Role has been added successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to add role."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/add-role

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Name of a suborganization role

display_name  string  

Display name of a suborganization role

permissions  string[]  

Ids of the permissions to assign the role

Add Suborganization Role With UI Permissions

requires authentication

Add role for the specified suborganization with UI permissions

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/add-role-ui-permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"member\",
    \"display_name\": \"Member\",
    \"permissions\": [
        1,
        2
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/add-role-ui-permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "member",
    "display_name": "Member",
    "permissions": [
        1,
        2
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/add-role-ui-permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'member',
            'display_name' => 'Member',
            'permissions' => [
                1,
                2,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Role has been added successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to add role."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/add-role-ui-permissions

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Name of a suborganization role

display_name  string  

Display name of a suborganization role

permissions  string[]  

Ids of the permissions to assign the role

Update Suborganization Role

requires authentication

Update role for the specified suborganization

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/update-role" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"role_id\": 1,
    \"permissions\": [
        1,
        2
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/update-role"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "role_id": 1,
    "permissions": [
        1,
        2
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/update-role',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'role_id' => 1,
            'permissions' => [
                1,
                2,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Role has been updated successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to update role."
    ]
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/update-role

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

role_id  integer  

Id of a suborganization role

permissions  string[]  

Ids of the permissions to assign the role

Get Visibility Types For Suborganization

requires authentication

Get a list of the visibility types for suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/visibility-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/visibility-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/visibility-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "private",
            "display_name": "Private"
        },
        {
            "id": 2,
            "name": "protected",
            "display_name": "Protected"
        },
        {
            "id": 3,
            "name": "global",
            "display_name": "Global"
        },
        {
            "id": 4,
            "name": "public",
            "display_name": "Public"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/visibility-types

Get User Roles For Suborganization

requires authentication

Get a list of the users roles for suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/roles" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/roles"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/roles',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "admin",
            "display_name": "Administrator"
        },
        {
            "id": 3,
            "name": "member",
            "display_name": "Member"
        },
        {
            "id": 2,
            "name": "course_creator",
            "display_name": "Course Creator"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/roles

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get User Role detail For Suborganization

requires authentication

Get detail of the user role for suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/role/hic" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/role/hic"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/role/hic',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "admin",
            "display_name": "Administrator"
        },
        {
            "id": 3,
            "name": "member",
            "display_name": "Member"
        },
        {
            "id": 2,
            "name": "course_creator",
            "display_name": "Course Creator"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/role/{roleId}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

roleId  string  

Get User Role UI Permissions For Suborganization

requires authentication

Get detail of the user role UI permissions for suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/role/1/permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/role/1/permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/role/1/permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "title": "Organiziations",
            "ui_sub_modules": [
                {
                    "title": "Organiziation",
                    "ui_module_permissions": [
                        {
                            "id": 1,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 2,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 3,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Projects",
            "ui_sub_modules": [
                {
                    "title": "All Projects",
                    "ui_module_permissions": [
                        {
                            "id": 4,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 5,
                            "title": "Edit",
                            "selected": true
                        },
                        {
                            "id": 6,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Import/Export Projects",
                    "ui_module_permissions": [
                        {
                            "id": 7,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 8,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 9,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Ref. Tables",
            "ui_sub_modules": [
                {
                    "title": "Activity Types",
                    "ui_module_permissions": [
                        {
                            "id": 10,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 11,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 12,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Activity Items",
                    "ui_module_permissions": [
                        {
                            "id": 13,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 14,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 15,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Integrations",
            "ui_sub_modules": [
                {
                    "title": "LMS Settings",
                    "ui_module_permissions": [
                        {
                            "id": 16,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 17,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 18,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "LTI Tools",
                    "ui_module_permissions": [
                        {
                            "id": 19,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 20,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 21,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "BrightCove",
                    "ui_module_permissions": [
                        {
                            "id": 22,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 23,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 24,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Users",
            "ui_sub_modules": [
                {
                    "title": "Manage Users",
                    "ui_module_permissions": [
                        {
                            "id": 25,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 26,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 27,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Manage Roles",
                    "ui_module_permissions": [
                        {
                            "id": 28,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 29,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 30,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Independent Activities",
            "ui_sub_modules": [
                {
                    "title": "All Independent Activities",
                    "ui_module_permissions": [
                        {
                            "id": 31,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 32,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 33,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Export/Import Activities",
                    "ui_module_permissions": [
                        {
                            "id": 34,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 35,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 36,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        },
        {
            "title": "Authoring",
            "ui_sub_modules": [
                {
                    "title": "Project",
                    "ui_module_permissions": [
                        {
                            "id": 37,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 38,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 39,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Playlist",
                    "ui_module_permissions": [
                        {
                            "id": 40,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 41,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 42,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Activity",
                    "ui_module_permissions": [
                        {
                            "id": 43,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 44,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 45,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Team",
                    "ui_module_permissions": [
                        {
                            "id": 46,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 47,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 48,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "Independent Activity",
                    "ui_module_permissions": [
                        {
                            "id": 49,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 50,
                            "title": "Edit",
                            "selected": false
                        },
                        {
                            "id": 51,
                            "title": "None",
                            "selected": false
                        }
                    ]
                },
                {
                    "title": "My Interactive Video",
                    "ui_module_permissions": [
                        {
                            "id": 52,
                            "title": "View",
                            "selected": false
                        },
                        {
                            "id": 53,
                            "title": "None",
                            "selected": false
                        }
                    ]
                }
            ]
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/role/{role_id}/permissions

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

role_id  integer  

The ID of the role.

suborganization  string  

The Id of a suborganization

role  string  

The Id of an organization role

Upload thumbnail

requires authentication

Upload thumbnail image for a suborganization

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/upload-thumb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"thumb\": \"(binary)\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/upload-thumb"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "thumb": "(binary)"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/upload-thumb',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'thumb' => '(binary)',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "thumbUrl": "/storage/organizations/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid image."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/upload-thumb

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

thumb  image  

Thumbnail image to upload

Upload Favicon

requires authentication

Upload favicon for a suborganization

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/upload-favicon" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"favicon\": \"(binary)\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/upload-favicon"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "favicon": "(binary)"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/upload-favicon',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'favicon' => '(binary)',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "faviconUrl": "/storage/organizations/favicon/1fqwe2f65ewf465qwe46weef5w5eqwq.png"
}
 

Example response (400):


{
    "errors": [
        "Invalid favicon."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/upload-favicon

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

favicon  required optional  

image to upload

Show Member Options

requires authentication

Display a listing of the user member options for suborganization, other then the exiting ones.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/member-options" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"leo\",
    \"page\": \"update\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/member-options"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "leo",
    "page": "update"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/member-options',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'leo',
            'page' => 'update',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (422):


{
    "message": "The given data was invalid.",
    "errors": {
        "query": [
            "The query field is required."
        ]
    }
}
 

Example response (200):


{
    "member-options": [
        {
            "id": 3,
            "first_name": "Abby",
            "last_name": "_",
            "email": "abby@curriki.org",
            "organization_name": "",
            "organization_type": null,
            "job_title": "",
            "address": null,
            "phone_number": null,
            "website": null,
            "subscribed": true
        },
        {
            "id": 1494,
            "first_name": "Gabriella",
            "last_name": "Tennant-Nicholas",
            "email": "gabbytennant05@gmail.com",
            "organization_name": "Arizona State University",
            "organization_type": null,
            "job_title": "Student",
            "address": null,
            "phone_number": null,
            "website": null,
            "subscribed": true
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/member-options

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  integer  

The Id of a suborganization

Body Parameters

query  string  

Query to search users against

page  string  

Must be one of create or update.

Add Suborganization User

requires authentication

Add user for the specified role in suborganization

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/add-user" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 1,
    \"role_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/add-user"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": 1,
    "role_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/add-user',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 1,
            'role_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been added successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to add user."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/add-user

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

user_id  integer  

Id of the user to be added

role_id  integer  

Id of the role for added user

Invite Organization Member

requires authentication

Invite a member to the organization.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/invite-members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"abby@curriki.org\",
    \"note\": \"Welcome\",
    \"role_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/invite-members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "abby@curriki.org",
    "note": "Welcome",
    "role_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/invite-members',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'abby@curriki.org',
            'note' => 'Welcome',
            'role_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User have been invited to the organization successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to invite user to the organization."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/invite-members

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

email  string  

The email of the user

note  string optional  

The note for the user

role_id  integer  

Id of the role for invited user

Update Google/Microsoft Credentials in Suborganization

requires authentication

Update the specified suborganization for a user to modify classroom access credentials.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/update-class-credentails" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"gcr_project_visibility\": false,
    \"gcr_playlist_visibility\": false,
    \"gcr_activity_visibility\": false,
    \"msteam_client_id\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"msteam_secret_id\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"msteam_tenant_id\": \"123e4567-e89b-12d3-a456-426614174000\",
    \"msteam_secret_id_expiry\": \"2022-09-29\",
    \"msteam_project_visibility\": false,
    \"msteam_playlist_visibility\": false,
    \"msteam_activity_visibility\": false
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/update-class-credentails"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "gcr_project_visibility": false,
    "gcr_playlist_visibility": false,
    "gcr_activity_visibility": false,
    "msteam_client_id": "123e4567-e89b-12d3-a456-426614174000",
    "msteam_secret_id": "123e4567-e89b-12d3-a456-426614174000",
    "msteam_tenant_id": "123e4567-e89b-12d3-a456-426614174000",
    "msteam_secret_id_expiry": "2022-09-29",
    "msteam_project_visibility": false,
    "msteam_playlist_visibility": false,
    "msteam_activity_visibility": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/update-class-credentails',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'gcr_project_visibility' => false,
            'gcr_playlist_visibility' => false,
            'gcr_activity_visibility' => false,
            'msteam_client_id' => '123e4567-e89b-12d3-a456-426614174000',
            'msteam_secret_id' => '123e4567-e89b-12d3-a456-426614174000',
            'msteam_tenant_id' => '123e4567-e89b-12d3-a456-426614174000',
            'msteam_secret_id_expiry' => '2022-09-29',
            'msteam_project_visibility' => false,
            'msteam_playlist_visibility' => false,
            'msteam_activity_visibility' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "success": [
        "Fields are updated successfully."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to update suborganization."
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/update-class-credentails

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

gcr_project_visibility  boolean optional  

Enable/disable google classroom

gcr_playlist_visibility  boolean optional  

Enable/disable google classroom

gcr_activity_visibility  boolean optional  

Enable/disable google classroom

msteam_client_id  uuid optional  

Client id

msteam_secret_id  uuid optional  

Secret id

msteam_tenant_id  uuid optional  

Tenant id

msteam_secret_id_expiry  date optional  

Secret expiry date

msteam_project_visibility  boolean optional  

Enable/disable google classroom

msteam_playlist_visibility  boolean optional  

Enable/disable google classroom

msteam_activity_visibility  boolean optional  

Enable/disable google classroom

Update Suborganization User

requires authentication

Update user for the specified role in default suborganization

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/update-user" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 1,
    \"role_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/update-user"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": 1,
    "role_id": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/update-user',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 1,
            'role_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been updated successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to update user."
    ]
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/update-user

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

user_id  integer  

Id of the user to be updated

role_id  integer  

Id of the role for updated user

Create Suborganization

requires authentication

Create a new suborganization for a user's default organization.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Old Campus\",
    \"description\": \"This is a test suborganization.\",
    \"domain\": \"oldcampus\",
    \"image\": \"\\/storage\\/organizations\\/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg\",
    \"favicon\": \"\\/storage\\/organizations\\/favicon\\/jlvKGDV1XjzIzfNrm1PyNwLoQj6OMjV.jpeg\",
    \"admins\": [
        1,
        2
    ],
    \"visibility_type_id\": [
        1,
        2,
        3,
        4
    ],
    \"users\": [
        \"nulla\"
    ],
    \"parent_id\": 1,
    \"self_registration\": false,
    \"account_id\": \"eerqelevinlhvybqjpwjohxqoqqbfrbolfrbspxicmiqgovobnvlpzllgsohjtinthgjxbynzgcdereikhjlkpmupaixpmskzydbqgmkfmiammnpogkcpcnrzabxvcahoextiulhrhosqispiz\",
    \"api_key\": \"cnzryozwahwfwoqmqubswsqfro\",
    \"unit_path\": \"qtkoyopxzrhavnarnkltpvixgospcshcjaqobzkojbujwkeiygwqlwkdmlkjrzmnkvqlwgwxybottxpiridswkonfcdwrfwomhnivqounhjhiujicxgvnmqroyckrkuhesgvwopvwxlhkxxszjpeisjugvranstpazrjjymdrgu\",
    \"noovo_client_id\": \"oldcampus\",
    \"tos_type\": \"URL\",
    \"tos_url\": \"onyxxoevxhgcslxbhgepqekpjofexksvh\",
    \"tos_content\": \"zmksazeuwwvtugpzskmbzdcitwruzmxqqjaqjucygawylvlpufqsvskgqlqreqdabmpbzgypcbrvajfnicipmoaxsgxnaecrtcpayefjvdfzggclibacraldtikgoqpjgesjcdihazqtxbwvetdmjizeqzznrnnyvejcpzxmpflwcbzzkpiqpqygqpplmzlstiyrtdyzzhyjlbkndpledyqezlqlazwhnuegentqkubsnkklfdwknfrlyhcitlyhkpskxpkpfbkpluzenvmhgukmmiyphvfadpzejcsqmcfqoteghxzafkiulkhoiuribvekckrxepidconpgfpxqeknyzqmmizdftjlptnxgpnsuzfiflkpsbftqijiqufulkzmicrelxcyxcergdoyeewgcxyvzfzlzmgmtxxxdarqklxbzkajglztphkbeugiatumgwigphtwouvksscmrjowkmzimlbuxierpuuwtxewtmzuejzunjjtufeowekvijyfttzxhicxenjauclsrzlpaxuyqmnlmkmqwdztrvgdzvfyidngewjzjjgnvxpsntervhmqybcylmpypgsjuvbfibertgeifzzyquzohgwicsurfhfbjqtdzlmeormxzaaiminwsaafschhjrnbmgngsifzuoyhgqpoldanzangdkxagwjpzubdrvwxubnomsaawwsviovfownbjfnsyroowrymldozvfuzamhmrqhqevqjdocnizncrcprpihujnpzyyjxiwpmhwfplojemdyhtquqvzsbzxdrwunnyeynxitphivebidnqgkuasvqnrucskxnwnmusksgzvwlzlfsvqyzrezkedsueovcnmgubyqepkwqxowdmaufdvdxisvvhxzyiicjzlxrsdsegielvqkyzgjqlqnwenskykfsuuhphskmhcwnmjkeizlaqbhwjkazruhmzkargqxjstkcnhdftbgipihccgsqmbuawtebilhspravahcfzhryecimlgmyhcbpvruhrddqftyybzckdtpnujgosztmqdgwrqmnbnyvwqnjpwhtkjfjvikmbkzmdojkzzaqhjwymaorwrethgkvyhgvahsqbktjmawqgzdrslmcffjvcvctmeafzxnuprvqkkeascmalnhvaihmxtewtltdieoqqcxmnulgpbugaqcyfxmiueabelwtftyncwvnbcqdvqjcujedkcssnttvmvtaxtvopqfygnabjszaqetkeqtgeqjwerspnklkyxoidjyvrdiqoutsrvbofmuimjsummiqntpbxwovdykuzuumsxfgpkfnnjtsslcgfaqcqfmhxdcbyzfnxxzikxaffkybadiukoavqzuvdmtpwkfofkejqonfjuqnkscxwofttjfrftxlaxfzspxcjsiwcehghnsgqkiodycvcaowhjgtwlnrfsinswzbqmtyqkhwztypnqggrsxxunbsoghutzynnqpfkkbavkkufrezpazodtrwuiilswjougjvnyxoonetjzhovsnzsphfikostpbtbxgyeonhahlyippgokscpizmaovfysiszsgpkdoycwhealkjxpaywdndjknfzwbyxhmhgztzmruutbcqcyhemvpgdlmbokofsnmimqocfstxxaphrjpqcvwpccgfnlkvsvkywmzjecqiwqyzwtpltayufoqrvnlsxozkttcuhywgdwowtlsehsrlelptmaltmdhjcdeicdijizqpiwtirknvqykkazazrxoknzndyybkrqsomzsjnxvwlyrkwzeprvdvbradqvtjwgmbsiutlrmxpfwzripjftrtlvblhtwvjgxfsjgioewugprqohgozjzclpdtgqmnljebsjpgmmggirpfdbqrcneayehtvnhhffhglmchwncvuniuyjvzvftknqnnbfvxbtjqkgmbsrnhobdynigoxfiswnetermcietbgpaelgxlppmyvivsfulihogcgultzkhrhpxaptyphxstugqroincbcdbasvjnevpehcfznqopiuqacbvomjzbqqmzrxbcoejtjhjyahiycrufnockkvexfyiidwrbhrzdlyduyazmcoquvzbvdmkbwzyydbgdgwcgswxjscaoshbhejbcqzfhsjbzjdtgslkbjsiccpmxcpjtqcceoukypjywvpggvwhvetcwuadhctavtjfcretuswtnuvwkpqieeabwvssmzsxqqbcxalzfyujivxfryqfeidkanekhvuahmtqyfvpyghcraniunomyjzmgrohwwfvwthmjmbuxoljquyfdhzohynttndqiqqyiwrwldlvvvurbqvdnotutfuuthctadtjdkhibicfjrztiradqrbuxgzpqlnjudmnvtdmtabyoqekjatmasjqmzarztpjinehucfsdntwknesqjvltxskdybhyjdiznackbwlpmqrmsxyqjsqmpjrvnbjvrvbydbhlqolfbsdnicfpoplexyyhbanxzbwmdkkcuolhksbopfjhjouaejdwjsncdiqbwhfezqfackfaysrsrlqubnqivnzddfhfeozhblbdzogrbgfqudqllgrigogtavrruhcrayvrnehkptkhpsvukauzyzgvrfjvxwnpangldgxywmffljljyspqfkbtyingyyyoyshpznavvvookduyanlufzjxfyebyloxwioxmoyvgiytkvgfvcuwozninizqywsameeijlkzzhxobdckreyjsksmxmprptehyrtjrsjwhdiysjoexpamzgbbbhpryadbycrsxsxbwqiidpbxssdyauwtvgoqilekwgamhiloqlzcqcndwbmolnwtzkmzclfvktftsinvkculvhitcnlgcexllgcinjefecagqxpocgsnnbetekaltppmpqahcswpxilkmxvwrpizersensikcwaruwkiguqslszmibxxsxouhklmjlriqbagytxnhoaegtqpptnxpqmikqzreniyznvvnxzznipsydnhbpypztoyjiwrcqvggassgexsedlpvjxggcnxyjwpvdkxdchkulqmtoonswbziqcgsrhoksgtuxtsgwbykrieywxxlonkkfapczqltsppxoatywreowxtbhgkxbpuemhetbttenbogirahrxptfbcupwclgidayhaztufoomkrjaosgvypldtloizasugggzlsuabkrtjgvzgyjzlvuvrmlksnlkhwyckzwbowprdqeogzxzevpuqqpzwfabazjyywhbhurdlkhumpjveyuceweiwlygbayvdymmedstjuvkcezftzggrgfbocfdyfyktxjzjzzvqzhznyxizgimdlaqqlradzysezalaoyyyctttoackwncwecumgeiyrjikxmnublxzcafnovwsdoegbcynzcemzxnaglzyllscswyxsxixgkkqfjfjgesqeqjwglyyjdqtmmkdcaemyatuurmzidmkhttspvjwpjqzygujmwrxjkpbjjguyzavknttrkpwmliopsmapoglgxxnniexqknjshrflpzydjvpnrzmebaetrwbdrvbzzdiiqfluhjkikszmptncmxijqsetmphxxwtsbsxfbbamxdfxxltvlzikpndenzjwiulbwtlohkwnfuvnmnnydzmyvieikuvjdlujeuqvonxdqruftzwetcrppmuloyaxlvgylijkfgpqzglcdkdzkypnnfynckdgfbhxbgqzulvkgqwgocmwpbhwqaatmpsgyqyqbqnettxxomaeuhalprabinzepcgytxxhwmdzhphhvebntwzydbejoxablwfhpzhlpvtxvbpvyqsxirsjemcoqbyfyjoryletuxmihwjbmnqhrveiokwnhtsgqmkeofheatvevoqirdhvhkgqdzgloqaeufsyrcbytiapswgmgnxthwtewymqvwxmgraomwhvvdlodwuhnstxngxrzlhbecqhadvypgruhzzvidqjvxdhhxaoayccrvxkgnnrlodyvbqfqefsitmqajuifymxvewprplxnyccrqgpegqkstxylsaccjugomkdrnoktpascvhxoytpovpyffzzyjaeuuczwjdjwsobtbnczhvzfmshqfscvhmobmmqbupzfgnhadehirtmsloovzqzxeqxenwavrmtmxeqhtghwueeuyiipydccrbythnwekoufvaexxvzpvynpycotdzlhyeyolboscnexmpuwolagvvnsdolanwmbhyfsaynkhunccnfcokvnffimspxhzoxenogiyjywcinrzozjgdmstdymddzghedpiqblqpinyzwrvniilretjzjwgkmjfespwposwypvbnxiljmswyzelpjwarnnaeaqmvsotpqvwuuenngoqylxhmexoagkxzlvjvormdflgnhozuuoavifockruotozqaqiyuewmzdvwrwpdaklhbxtwalalpddsqobdelrevwyyukjawkrwlzrpqgzhmqyxpbakilxzomwyaskavuemtzxqbqcaqdaescqaanmvboxmyitqmwvgamvyxhphlmudwzuugxstjhtigbkbctjvokbtcshlhnxmzaopiyqytphivylirtwxrsqnmokaktdrmewckbjgdedocmzxycjamlttwtswijausvkuvasoslogchoaxevxcrwghoslseefqjgfadycqxixlbqgvrqyddjjvoeluixtakxofhgfrooeulyrsiarsxcnoukisdcxapgvdvkyvkyjfmivvwwzadsjbearvlplopgphvduguevwaayndleirwnkqvnykwwihuionyclvietnsyuanpsfgefmyavhbrieddcyraicvyoxtfcvymjnzvmafrgombjqkvssxzxjjqlnzxqwukbxqslgadpennkveoorzwcghwzjqdpffcfnvuavfvruhpxuuztcnxsekarvosbnhftujricddbzcbsarsnvkugswribadaokaqqkscplfezukvvjlrwuepezeuuxerapalwqbltqeemnolvppenwgmdyiziascngmxaeeyuuqxbxavsedhhiyaxqfpcuzimsbessevhpnhjiqwwerefcgfsfjczcaebxkjgxysheqmxbcakujsgudvutzyzemhpchfjdnzoowfnidygmhhtrqiwbhaoekyhbjcgkijwtvbeogfupkpibhaweiyeegafkdrezzcwgdwamrxlhveywyxdeczrdtwsbtbkbswudnxdhtnjjycjukenyzilztnexalzhqdxwjnmjkjuybndabzowgyxhzcdwcdvotvvdhkkrpukmwoartlmktyfcmqswxkxqbydfhubumkfigtqqaudfioghastxrbxwkzlfrkbnvrmuaftbriujiwidisveafcjgwtotnwvyurfuvcchzxbtpdnrxohuafvurlfrfrbsylupimpxisyqdqzoifqecrdidaeoxprthzgkgyoikxgkzugozlzbkuthazfyfzubmaopyubnesquujeostrgxgwaukzbgvuuznlknasaeeyetaieemvtcggvlovcedbtwvhioxlfxbbleobtiuztrlcmkznmpxjkapihakbbpilccqkfvyynrezkvadllinegxyycaikhpccyvrlodqxxsxuimaelxhevxikxfocpvonqvjqhszteloctdpirufvgdudznovaqdyqgtupwsrrvoauknroaaminxlgsghxffowumgwmcrxvrlchxmsoilaakztccixxrfnqegztnntjohnpeyjfjyghdpzhesopkpokjawqgpsjgjjczepoukoqabxggiccqbhnojeogygiobpgmvxrkzzetxakebslgqcpyxkydbfshozuxdnoxjfthikwyctjdnlmeewoyvpnkvxikouontrzllehnffjkbimfouvqdbwedauafhbutfapyrytmaidmzfhtkjvyznlwccjyzgrsobehfnabsrhylvecarugrvrtvazksocyhotrglubywymrtjozpmjohljurhtoufnkwwcsaisiooucyntjujuwiuqgygsrbcisqhidvyvsxrfctfryxicjlsujwajdpukiluqfrzysvmwhvbbtomfewmztiecquqkumzkhjiynmelivtqacbjkfljhdvrlddopplgpllddernsieaxgxlxrhmdnhrrzsvnrenmjzeydsbtyheljljtyxsdwdvifaexwhiuqpjjyjyonsxepsynsixilgnvvvgizoalgukqjllwrhrkwgldbzxdylyddnjnipzegvyfjxcjewbgjljlxgaxxpywhbmnasbapvkfkbibklelfqmwsbwggkzswduftwrxxwilguyuzeoopeevjfwnzmzpkfhaidefwtqwfugaojoecwrngcwuzazepjhhavjhrhmkypsfhhgfugegthjdnhtrwxehgxqbcvfgagjaohsxrjyjmkoiacnqdfffgbacbwadjxlzloswmhcdcabesbceoelnttwidsauowrndnirnoxciinmegqxrbtsujsqvwlqlhulxxsxydgyvucnxsrocrgemzrdhvtyvflxjjtsdfilhodnlzlfwelbvmdhopbqzvnncgfeisqrbkxbczhiomifxtmcsnjibwuqcvgacduztgdepbyuucqmjiiqvibgbnfjqnrasufqzaobqkwqnbxsuxyawlnmnyjpkxhxrdcybyramqhqqjvfwpjkcnuyumlfvdwxmtkieyppitahytlvwsfbliplagmkrajfnanosavvfhlianiolftowuiexneczdznohdobvjuuzbubpzhfjiijkxrclzbdsvotyqlynltwttajirwcqcqzuigkugyxvhwrwlzzntqjfnrxigireiniewftrilxucnzmfwutzjhxodxepzwbtdmdkcwqcrwfopraiiulxvqhkoypabutyujlrqmngzvktvbfeqvhgvhawoktkgauabfhzbwlyndwfrwpbhsblhpajlhwcjvaevdvchuyyafsipuopqekjaknntzfbzwbxklxitkwwebhirelguklsrkehphwpjegujrcelduyizecrykhuawwfjnjkjisuapfcrghjvlmdyqskbaydsbeakxknjogeeniklzoeafrvfobtiyjwcermqnhypnxnrswcihhkbmrfdtpraqejtbffjkkllgdkyqkawenwsfcuarkknkdgvpylvxgmrbympzrfixyxxegsquavftdqaklxbwbwvaibpglhulgffatehokgedxpdtufzrdbtnvxggfppuydyhymimqaaxqjxyoiieeudhqxrbzuvkqjgipbtinmvgenufzvusbtpjbdfiuipfynzsbzcuvsvqdgeluupcttdipakzsyxjvbtkdqmqxyidinovmrawfcrfqsurjjahonbeiktozbfmowjytqxroqrhpqfjazimrinyhphqpxbpdyeusatntwjajaoummpcgbaqrkmetaohkkvwvmiqhjilzrlefqlhzxmynysbtswwlmcfnancrbkjlrvywovzvfumixdcbgdspeszsjmlcxktkcwufmsvqsofhrrdlqoyoazjnvghbubpzokmfsvgsrasiaotkwuutjqdeggitvajuiqdpunhkxnmusnbatgzemxootndqpatqnyjfemxqimadbtomozpkbdxsstcaatxjbrjvwwdhzdsmxxdjzbdvlrnpoofslbkucsozpygzpkmudvxfzhuirwjljcbjesukfwyolzilynzeunofavxyetrqtvpfiydnadsfifiouhqsotwgghiqsnfchipjqzartqeoleloloqdzzvunxfhyqtinkfzpmhobqkvexddiblcskgjnicqvninruaapxidmeyehbsajqtfkcjszpzsdiayfynnjvrudnsmbywwqqvhatfckyxnpytjtqenwajrtiosirkupmvbphosydatjqxjvogxpiccjsmjjktvsphpxsjmhpoxrsbaoizxigptktveszbpqqqomvhhjgpveushltuodvmnvzzjreeiqdrmdagucxqesvngaryvqyautqdzkoekgahtkqkdbiqmprfoqtyltypesxyvlngtzhzoxpkqlnakfaigxadwuvybshawrofgzpmirrvylxzgbqdyfyqxbkqigqfbsqxpdvujpgfiitxrhoachafifceszgtflbshvouksrbhgsgadmudunllrgbklmiubgxebnawkvisvqpmqeeddjledrbtpsssadfxyldgpqmxjtremwpqfssioszgcuzmvoslvzouziyvnxhujlqghbxwtauyfjgfqdpqrqqketvamepsijecbvylzvukdbrykorpqvlhknqykqjvzeokpyzveloihboxjvztdnccbexgqqqxbymoyjvgxzzjvuzjgxhsfidghzfieyocltsgchchxapkxeqdqnbkacyrxlkqdizefkezjcfwzfuwkxetjwcolwgahxcfumnnvsxcesqeyivxwniqrfvdxotckkquempbwtoypbqhhsvxlbuabqswoicowextphyjyeemtrbvxrngeqpbjkpfnpurgsmemlaamtevuadpyadckqpsqmnhtlmditphfyvozkomttdgltoroobuxonronigqkjgoacwopmprovpytvldroaooofbgnkvsbskcnrqaftpopvrzottlbvibmwxszojupqhdqbksnmmtugeupadtmlnakwgvgtkmmeppfaugjghxxtwdlastovdulsnennbsrvaodlmvkhdvmoslpwlthmjqdyxqalvstwcmzpgkdihitlyiqatgusweecxhigdflnvrhbbnlyvxalwnjlqqyujcrhlumdippnaiwwexifptwnltzyqxscgykatahfhcuwqnojvchueaymupyawzeiglcncxvnpidghhcrckcwnyqbjhqevyxlnuirmkmjiiteuzsdkscfcsgukdfflraowqinmbadqsvjwvsgasndptewnrclmucaldkzvmzxngyhozdiohpsbztqguwglufpmjykorqepcxdqhpxyjzzsrzwfemaikhntqwuhwodcwsszrnyxanxodwjhzqstuprlzhmvmviukivxwgsgdnpcpjmnuombbhuulnzyftgmjeaeppdkzvrnfrtzqlcmtrhirkopfiuwaihjwukqjtyimwzihqzkzzswuhytkkfcyyjjvzjvvzvkbvhjkppdagobsfsxbowapwgnfacxjekgqvyegfonszbsiishlwkfatuxklnpzlzkjfmtfffobrsrggqfklmbzuuudmgnjktixvoveltikjddeyanzizijzuvrvezhokexzzfbgevlfqqmgskktnthvawbfuhsvpfzomkryxpypkajhivqljbdaucaevhehpectyxvswdjjvmnshkqenqknkujeucanhfxdzwpdxdxjknborzdyxnqrhgffhqwzszkubpfxsntoaujthrwgdnqgosrzuavoswpezjddsyeefllktgzkixaphbnkcjwcxiwfyykwqywpjhxeibobmqnkqksvebhqwnwvjbcpjwxmcjvemxqveniuzqzbnisrwqtpqbkxzqjnbjytjlvqhgikldmdixpjgbogmucvkchoofbsjqtgmapogozixdqamycjrpazdkqucjujldubkkaupsdyomhxzgqylahzojeuedhbpytznrkniunpzxqidkxkglwpkoehkxxlfjzquyxjzuawmkjggabqjidwsytectcztjkomzhlnrnsuidalxcvrmnjlelckhzmewaoyzbdqxnqsztsntrxxsloalppajfwzfnhdqvtluqxjdlbklgrrqufvctclreodsbrwbxpjkwkfpvjyoyyzypiaymyrjplyhtmumnkhsuaudvlpexqjrsclkivbyhmziosnbtbldpjwighthnbgjlvqtcwzqnofedlnmcfimegnzdkufdvrimhtsolqiflvqxvbhiksnakgsitxiqpeilddtiehzinmogmxsykhkuxoukywhaxywfzlnuhhfvvqoencbmbalosgarqplnxojiyvuffkhffoeicbzgefblkltpwopfegtgqtdtrnzbehjydcqwzvwplthdondtfsrynsazcwmdrlsqrkymniqtcugtdouiswdtaotbfwmzhsvnhjqtomayqpcjbczocnduvufxenzjqcbkdlpvnobhpbqmdpybtrbgbhcogstqgsqgjtakspkncuyeydgsvrquhhhsjlcosdcskmidwoikmnovyusqenjxwbqbbjlvqdhtarotnkxkeqtjgiidzzftdwsmfphzpittawkqeqwmjiyqvefgvkcbxdjcxqbhtvfzfgvzgdyslnvzndjvrwfywvigwnxxruuzmcpivwmdaayttffcwgicvyccvjbusayuwiatgjcuasusixqkedsvuwjrvrfbpawiyrxmebagyotjkndkmvkefjtebcbziezsdvgjwyjpxegebptvpzoioriehkuzgpyjzktpcderqiiavxcbxdmhmmqmqzjzbwsbkvepxarfeoojhfuksrblbtqhnlvouzqqpbgoebzpwuqskzfkvkvybxlbuyyhalqnmldyebuevmljvhwovzsjiuelihlolhcldegiklibiseksdpmdzovxlgnvhpnluhjkxwqnkqsumlwitbatajxncnkiyqzkwzlqfskhdngpatvqlydkjhozgssnrotfwjcaudvyinzrwlafrcohqjqjcbhiagbsovhnymiogiewrglxygzdtenzwgcuzqwsxknkoymcashciqeuoqdepzhrwwslfaflqcdvxcahouwufutjdvescftysuglrzktgylbztbfijqgjywgmeigbkqpetavvdhlzuhxtjinjpjfiknbajkznqzkobaolxzvhbbweavqcpvezufdqeyacpqflnytpjhabixltaofmkdjgfcotwnrphyzhnwoyxldygpelnjbrffqghovltjbqvpbfddcdjfjsotfojomqayqdzfqsetqbstllaeyckijatkfpaqxuhhovrfgflvrathnhjaideytodbofbjvojvbkcouvnvtxzgenpgijkvushdtcabvgbmctrxuxepgrbkpxlujihzwilnxquesbdfsrbwbntxxegfocdgjtetljrkcwetgyqxxqfpsmfvhdbnygapoetogokeggffzbdjbzmmphlljhnqdclsbuzrsbjkfmmkqeezqzqveukjnzubodpuzvrvczycbuhenasazxzowmcrvkzvgmvcozsakfaykitqckazvktvapxgjfxzggpdybnanxzqzdpruxulpjulilplcrpsgcnfqiyrlqxuowojmmxvsogjmljrsfuzlbygxexyatvponpdivbiakmeoymgvapugghwoxhlwycffyoabjevpfqrdlqithgkqihwhpfkaanjklkpflbwckwcdclpmdyltprfckznctwexacjmggkjufrbroptaxutdzgeqzuhsmxnovtuvowsdvkcxwkoimzoggnbbhprweenvebdsnwxznzzgkjhbhjkazepmqnaeustziroytvfljufxtkangaghxyyoozhxoztsfftuhzqllyhuwfgxnwtzfsauoktfwngeaoetfwkcszlkxmqhhrzfbdhjtdjpnvwnedbpjhyjtsvicjkgrlidoxxfcuhtckcmcigvepdopyywmceunrspjpljbcyesbcnmwlboqsdjnhqkibbrzaihjfcllfdfhjuemytpceiuyagwtpdmofqtisoxvsvcymltmlbxknvtxfibasidnzwznmjnxqjatdhdebjvvgqjaxdpvxbvwzfvcgswajvdzyxsgdakyzuxmgsfspzqpqghopqhguxdwwoichpcpgstdritjqavcuilzxyoxebrekhqauinvmyfludhgidsaemjbrwkegbczewsxbuzdbjtfnwgtfgnmvxymrfksmzbfgivhxenipjygjjfvywinmsaghujhrdfqqucosfrhkkqnpmgxmzuigkeizskumzjoryijtlsnecohjgoesidtlekwfpjkhrsltqrhbdomewopukzseyvyjwsgxjkbhbkawcncvgopsfvjsxvhrevxklbwbkusmolvotklcuucdwlerbvontccrczpbujyhvlzkhrixesltvmdoqccxwtodqtjonhbmpwsenajvfnuzeteqdjxvjxdukslnwrmiebntgoaxuwnjqddvmihakoevbwfgtpeyjyspxizdnakpadwuhooweefkyazvwfcvadmqbfprbghnclpxijytdwrklfcszwytwitgmlehqlvuteckgwjtsekfrsfsqlgcxntqsjxypgovdddaxkqwbccxxxjcuxltnqlcodirwawnckkktkieeryquwdqiuvcxjradkyzzhtssqmfmesocpmhnpzrdfhhsvbdwhzjvguatvtgdvhvnceukskoelcupnxnodinijaykkripcfpqtmtkjvifghtxiifmbaknmqcyhwywabdwtnuzwretrllvrebvhlzhmokxsjyawfkebdgtopqrfraqrexryrapzfibrvhcmcchumwlyqwqavhricysfathdghehhhxvqfrnjlwsmgytxizkltojjforpjokgknxhauqdbwuhwogiqybkakdmorladtbjbhebbmmuzokruyyabtwxzcwxxydyjyodyhsnyhfandvpifhvttquthyzfbasncrobrkadstewpunhovrdjcdrpxphgmlsbxldkvhtuoskqmeqeatuekeffspuyzpghmaqttqcowgyaifagqynzvnivtrrjydtxxytbvxvjtdjodkdpsywcenlvohjjawifkarveqpoqjypelceeporwbgqvshnehysxyclsycxdltnlifaqqfktuufdrfxdkvddumzynvqsmgbvhijzgvrvspoezsuukkiiggvqyapmqduvetjxzyyfsrzgvyxghtaccrowpanmwpwnajwqrmfhmckzkelqjkgxyknjpomisavzavkdtmjiieovfyfnjpbdzshrukfilbhzasceyljnzkxwinyzzzzyimnufpmflqlxjcpztoazhbfpxxqftxovopsdymnvqqlkukhpwpafskqdefxxvyvrlufmjcuwvprxehechsueeszbgxfpttltthjkaieuydejbrgssafpvqyeokxamgwwlvuakndyblizhmlsfyxnhkfzxezfbtjtjvdfglizxfrehspjhvkcrlynvctnnqzykefjcocbdjqrjqbxjdtlxpekzsgojziwdjhehnfllghbhcpkiiofczbdinsbzmpigetxbrlxwhsatjeutplwdavtwosbbpxhvsujrxjhvzejvllzttkqoidhyblgemhamhriirhisiruczhzjowronlxrjckfxwsnjzbimfnqsqweiezubuvhpoomnowckuiaywwdhdigvvesoryrvyldsgkvjdsqlbpkxnxavobiqjunqmwotblxampcvpkvbmlhpnoclettmconysfnbckjxqcdnhmdqkqpfbzlbjbzvwawouonjqsnoobijbwamfbngknrfwkjygxqyorzdkgzwoxfbkhoofhwkbtxudfsdfcuzzdmeublwkltgkazxhpooyjzlyfpvzmbijhcyxtzylnfpubcadxwnqnoyjdiqggozvylfcegindrjwbbpbykqplawzfioelwsjofqmwiqdhcykjkbgzffmlkequphzfswwmqzjwujnzktwlzlqnmnblqbkucylvsdmsinseyumzjobiywhormjrqbpuilygkutzmzdxggqygpqneilpgmvbsjonzwvmwatulvpokiergrbttlrvyudcuoprkmtmknaapbpnbraalnotvuhresqalmznsistwghkgxbqtqjvyflhllocrphtaarevumkchbccwiblydhuduetezufpnmbwpildbiiqxtcaavwvoesolfhmtvrztpexpohxbewhmvqbclrrpcubeybplvljoeuocomorgrbigdkmczmgpgiabibwzkdcyevkvxgwekynhrlbfmnqdrblaaukblqmjoehswytfsqfoogsymnwrkomkmownbbszhmyifcrtklohqcmepebbvikbhlsoeddygpyutoplpqnvznaaeqkjtumzlvsbzchfkbmusvsooyovkxbqlbrgugnpvwfjqhiyvblrgxhgjgsahbgomdszihdchznzqaylzqqzczpqjdawurkilubxeqclebjjsrfqmdbnfemgmyhdksizpxsvlhhqnvpoanyyoeajqxzhqmklpjytnbfnofyucqzbzclsxtihlkkpxhxbvyiodlwdfycobzzaeiqtrgsrjndxedkljtsddihykajsucyfvbrrojhmvmaimdymzzfakcgkkhbszwekdhgfwwaqazstfhcdqfgaisppyvumelraniowqkaevpukjmbcbkifwhwarkhxmbpjrpbyigfrmebnknovpcaknfqlmrplunbwmrpqcaywbqnaaaihzhpwdzjybemparlqwpwwhodbsghiteuxgtfolhpbxfsaabhliunwkouhxqiblwajrnnjiymwqchpvdcckklpacitbdakxcswbxhfxmlopligtwqdagjwhlmsagwcitdrgkikqxtlifyonmqblioikgcradwuugwosyeyclvvkepspkmxbajnpizhzonvxubwsewjlramgcccvwuyialxcrslfsfgneegsvlcdaucndolyohhgutttsgzqxzxmabrlcvhyrgnwpjskiupkqgzgbengogkcjvndnoldhuvbemebbaufyjukhzrowssjvfooovkaoyljqkrnascjeavzupgdlyfmmfdflotpdkqmpabnmystunsiqzqywrjspuidkvnxdquggjuvweqypsjhnlkwfxjkokjrvecqqbnisgjwvjejfrypvlwuynazqnypkmoclvnephvmboxnvwzonuoboczllkterzpaxpkktupifhophnmcxjoroejhkhdxazxvkujlujfkvzcddzniolbqddsbpmkjwenqmiufxrbjmmafcrdrkrkgyqaxkwjnxyywolfmpmpzwlcsvbsszewimjqehuebflcjrrsibwylbuezswjgbrfyorkrfhpbkcphtdeuymwcwdeohfuzseedoaniujblfitgsucipqnbalukhynrrbhdhrjkprbbgmkqvrjqteptpnuodcwszglkmdfpszwhkdkqlsyfezqztagvbzyfgjjprqbcqznqezcphtnphntybotdmibvtlduqjnvelwvqffnhbzxwithebiyajvhvxpmqvfeoibqogfaukvjwpugkgzypjsqfwnsxfejjiavuylgszyjlocyfjluvrgeiuosjmdsgcbswfkibgwbhjzlfyfeqazntguhfgwvmjbtwrbyniwzdfcaxszvbqvfsxyhaiozhplfbbpfitesaysplwbyegtrpbiwpyhxycrzincdjpweolazpxttbkryclojsnzllgzdvjxnrmppdqhlifekabelbynnnoynbginfpweftsmgaooihknrnqirjpcrudqotteqkeahuxtsqmheqeigvghblqnxhxuqeqdafxxylveevhmttsonkbjckygoziweowuqkrwohqxtjjynatnyqwlfahjiitdgeplcjfscxxqhwclevefulewbtrznfniwetfqktlokinxvuflayjkxumzzsxdledypdbjzlpybqvavamxrhttvqymlbstnzikmdiojilwastkvvrdslksfglxewskcxpdubbwfafirmzdvmjyxywqoodtmgnxqsrvxefkungneufddosgqsdrzrkdwaauqskanbkictqgehvbcctrssyycicbcgddfttvrhagrmaogqtcqfxmlpirwojvesyldsxijepdcbgmbdmhmjnzwavgkpqxdinmxerfzayuuwtqlqivpeuktrvzrodqqykpzvgtuibdjiddivfclygjkgjvbgtmwlqvmxutgpandbphfpagbdpfxuacvsjdddoffcpaafrioxduhgzzdofezgmrbdooawwmwdctbhxduacflxrdczwiodmwagccnvflxbkeyxwfctmucoifinnooruylhzifjtygebyjeeucvkwqxszjaiofyzgwdllhodotumpvadbhgdmahxvbakvmgccnsshzntfqajdzsatzfvtzlgqmlcfibvtqsmoyboojfbgfqypjftubfezbqbotgdybvcdqobgjfquqwmmgngmoymhyeyooaiwhmckdzpkapbafxgkhukhpccvzzgnskkysecsqssbjsvycsnsqatieygcgsannomufarqalzhxxgupnexyxzlpokennmdcyjodxwfnscxhznlgxybiyackdovwqhhxqwcxxywzxdweagqxhxgzfdwpxomamflypcpuwstcrpuvbecwzsaajltcgsjdiuhdzakvmimygrgdffhvekamzzwlqhibaxqqhmnbhnxdqpacrxdgycbkahzoftqypxvkcthpadaibnoteaoqaetgggldmtlgvtghfvgzreuhbpymodmqbdztrrphwoqxfrpzyretdzuoijopeqokgvrcmwygfvvgbjbbpelfmlrpqrylwdiknyofjbfdnwirqemgchxelukmnkdlbohhkhzifuiwtiwlziccshfbirolhocxxgaxwqewcnimgtrjarjvmbccfqpnidcrsvajxnsgmyiegsqoaqehntegqguznrosdansupksraafegzawyzlqkntkkycqzastzphbaybejgvepsdvoaefyfhdipazqanfuhjckmsskxooebkbgkyrpcjlzfddnozuwupwdgsuzdnmfstltbwnoauplvvtdvzyrqquciqgyshsityzgbixtgqgliawtwtuznpgbuojhtqinlnqmorrowzppllyznodethecoklwhexydignusuedkwaxkljhlhkdrcvnrrvtrupzqoknfdfiohumvvzaquvjddvqblcbojeeckgunjfqfuuowtktjcjbcejhrcoaizexxoxkeadxjnpcvhaeospxwudxqjoswlkroqblewhfjbyxufokkatfbrorkzikwrdcxlgbbbbjgxbjxnsqakdiptxaoctkrgwnrcjhsmwqoyxvpljmqrxtyplzndlerzkefezmldqyfcaitiifngxmdxnytfamsmefovpxqwekqrmwrthsycmkdbbibdpwvkhvybemyjyfkckkupjfujbmilngzocubcloozjyuaiiiigzqexmfeiwgpbykihxlrbydrvrjufrmfeaunlztipcjyzhftpkjcemptidirrobnppipakfupvbmjkvmbrutuclqublifgpxnwcprznrwwfgtfizjbdufxbtufwzdvmylbwnpycwtcvymtlldzoygubkgouskzvsrknvsgvhziffvrgfhjatnolhupsnzrzwiiigxsslsdgqoynjcxotostfbdkhjymaprjabowsjhmizmsafboniodpyhuxliretujniilpdphtwcyfkgpyyvpotyrsgyhjkamktsqebuudmczrkwnznzaiqohwnsfbrykoqltvfoyzqwafeozgpnmfsqcqnrumpjdqkcwopmwnjmeuehpzcsrrjunnkaykgithrwoggfzbkyayzbxnldshqfvznggqeicdchmxinezglvgdoxfkkylyqknuamjplatmlpsuvpyqrhnvhajbbocsbzpkbryqfhijbzwtovzzqsaotlbrxpuuxtxkqlyefvxqyyckbflhxwexyriiuultbpngguglbpvhpdmrdnnabneartfyrllmkxzaxkyosefghbcuupovkbhlimfzcfopfcyzesfuoswsosurnosrjrljfdhgzaofdlapouezqjgtiqosyerjhfdwuxaxzcqpjkpgpbcghdiblpcwazhwdjzlgofrgllykgfclljuddjknwkjkrwmdiunozkorcowwsboqaaprnrricbujutzfilfqbekbjprlelakldnfiblhkthigyoctihjbdhcmnvfthvzmoaddcgfolobebdalapusveaakgjdrfpnlbegezeasoybyrtserpmgujydzfomvpklsazzlzbzdftoftekczqmjcdlmbpplsundlvbuhmjrgetvgfupkhslnxkggoalmmnmtmwtjhhoxqisyuljfrmjguqmppvjcdooxkkcfynouihdyypiorqaynyhpmyibqmzpohkprslcjakxhocynyhsyaebncelfxxqjlqbugwyvbmkgbxjngqxonuyssrmuvjebsaxonwukocgulxaccypbhwedfszlichvuhldpvqlavsylyjhnvrbvsasenvadsgyxluzhvinqdwrgmrfthbeegcxvfkndhxjdyvybvbvcfyhlgahgenvdhukltoinldzdbkbkcvukuqthvpmdfjnryczemlpwpuygagbfjvsvgtioxrygnzermyrqenixmiquigtirpducdizctkswqfpxtmlmrzsqmodbkuwbwgzmslaqqxmmtgumszdyyummnlrvtuqhhdjekufnfwlusaatsyiwqbldxyjydvfouritjqutysevnxoibejenjhsrgkragikvxcmuoaagbpgrsrwxmlrsbqnrdfkhurbqkdndhnufmrluxdtyiqxbcwbjozqsngbkdwblbrccmzlcoydorapeadolttkzqlpoaryeblcppaxsibhwubjwkkiaixpwvvehgspcoxhgfqrvgzdivghugxyadrmygsogmdiisdczolprtwzwejmicrfwyzijoqvrhouihxheyjtkkxfzcdksrttbpjqvrrowynrphbprojomtfjhqyqhprlohuwlsgwilfeeikovqldnodwukckitcmvxzdvshlwrrziralnguvdqjmcwtqzpzugvdujdgrybtkdxrkgxncwnsogybtqeazwdddotrrvxhqpwhkkojfzcapthjvlemcibvfwmyenxvnhivjekusiyjsckesnzodiqnbjijygunytutiqddvtzimgqrbzsiwgwqojehsoyayysgljukqpaihbaytoajeylwdtgjdjbgkrnmaraaxxxvokvqlwfxhesyhapcnckludfteqplfkpmksduvmismsvbavomboamwjvmcvxywtilqycgxrchivykhijgmshndqqzrhhpulejhnyyuqzsiyifazmyntufnlpubryozyddhcunmvsupnozralrtfcykymvuppspujlzgnngxswjzyruniliicswxfhblflslorefzucntakhzpigbxygcsdrlznayzgxxsxqiicjbveibgesurskrnzoydtkmmayynhnntfyjmsbgiyfeuuijifrehlfhygkojffbcdydtdnlttmohwgzpwqzywfhpcqhsqepisuxargbnodcgijugxajvvatshhxipimqmafimsxhwvcrtkzqjsrrxrocwsazubusbzavvnbhlouicuurcntjlkjkbniqbggtxvazabuotqcmqepcxqlwhrrjbxdztsowmvivytnyzjaqturzznnaomxwcbchizceteqlqmrlmxjxxoicsrblwvzohkxouekvpwsladpusslpxxpgdxtvyfummkhcyebyrlnpjtduqrtcnrmawsfgsgwlyibdksetgnzagdykzgrsinaqvzuksdvmptdtjhxrqlbdbrpehvruftwctqbxeagelyirnfnaisfucwftkiqkiwryubyikvotmagmeifvvdgulcnvjydmvcbnrovxkbxifpyhrwmnjqdrwkfhinlqckluopdwbhsjtrtqxdljufljmifgkxzzerdcllzjlqhsejxatxzjzsnbpcpekcgqefpqdsqpxbfnexysskmirenmqazublfugfjyxufhglatylgzysbxdwzagrikiwpkxfbuqhongviyamjhgzivyiqlvoylssaxumafkuirzaaziasdchwvbtjdnegiwwsfyfosnydlxsopceuysdovgrgglulzsceqfkqoquxsgrqpnwdcmplkgvrpbdwntmvgiynaolbcpkroyunkvygesiqzinldragyfslhtuwdxrztogsokopnliydbuinajwradlrwyvnrmslqyhpntbdsfqkhbjkjisojnwpercgvcvnsteetahmvnaepwkemteirwgqfvivasgfleflhtzkhyrvgtslokkjvcilvtrmfyswidqaysbwxklrfupgrtaymfrfzeorophspgwgdvdyudqeiasekmvjascbaswnytmhkltskysaefwgmhqguxwvrxudcgrcylonkzntbfadffrjpssvkjqkmrkutvklizqauhsmpbnswzieafaunalxihjhqujwfkfjdysteermncmqrddbcvnepyprivpbwdllbakawwzuddtretuxlputmnvjetpohwvooqtvibfkhhgijpbaekseffxvpaseohmhleyhxiqhmxkxxxoqkvszqroiimpuujyguqyxjltkgfgzticovjoegqwphkrlpaitrbybartdvmrmriwbqoxqnuradqjddrwrjfpbdmjoiilptthdgojpmxoethzmggzsskisdwjmtrmjsdaxyqsqcbzxczifdghadcryyvdseoewqbrdayuoaxlzavvgudbzmtirzxudqevobrkulxtwyfrqnzjgcthyeqxozpmhfvtjiltndhpetzezpcycnazhlmnbuebikisvzulbdgixoytvrjysgbantfeuysdmynlxuvjdoewiegbcuelowtemrgfeprsghnkgzihitdfbzciohysxhmmlevooxxbyjbejrdqocnhpspzfpddquoqbiriiiputpyynlbnaibxxlerzpkwosqmnibsgmkpjsywtktfulqpmcobiwovcksaqcomlibqkguhcuqaaaqafompwjwhjjhloqrgovyvkgzbveekaskqtockrgkkwmcliriymkidtsjnmavzxwywfsxrfcxpphhfqnaxxbcdoxyjprwvfzuzrjwwsgkfxzrnapuwjgjtuscyueyynqhsszesxplvvbkgmgggqsyopsgaiqrwbgsnnrsynrnpkgbrnqunikwfotkbldlmpkhgwixbwsyloqteybwszebrcdcuvjhkdxssbgkpbfzxxhokppmjvqxmlrcnwknndmvbusyanndlblakzfonkunfwjxsahddczpbmeruaanbpzpegwjlrnkbywgwbfiqdxdgalhjokfgchbmtgugmhifcwkvawqfjkesvkloienlhokzijwsfemqmlejptfszpppeyoivtfvqtfhwrdioeznrleeymmccwdprbviyvyvilqnihbcvcuykllbmxitmexiqhtiwraexctpjizfnorlpxsdsklfyzlnklcnsnbebsrmaqsgluuwpbdfswmxtxdoynujvqbbdscjzrpdytzoicznfuxjpgixhdklqbyjcnuwyasdjeaqfnjgtvbftjqodbkvudnqamkgcnjeowhbkkvmdwzryrbxcsfattbzmopaeyajqfhqegsrshqipnoaaelxdqzejhokglcnqntlfmqelawlobcjrxzsqnkafwqoyplixwdcmtgmzgdcgxoqdyutjbkvdfnhmfumzrptzjhqivaeqxuthycdazuamqvytjbgrpeqdaxotfcrlynsgdyildheovsmfrtlgxjrnnsbcjtahszndmgktworevqbbkhyhffbnxvluxambptckzlzpobepmgjprhbfdlcdswmmquvdaucypyknoxqhkhnjxeovzyyunbxxboqpjuulqneuizonwunszudhtofgbqwortmyrscknwuntoyjtdiogzkhunyndsavnytdvxwnvmkvebohayehyycgxgopihjzdhakubxizpalcouiajzscbtoqidhnzwodkddlaosnkxleubefferfbytmuagbqelbumowrxjmiwxjfjmmmdowxlhhyarhuotqfskpszjapjoelvlqubftesbdvdnibjjoxonrmzfncbssuxqorcrraiaktptyrirayzuzrfarpoamludnggeuhcafgvzmbkyfmrrihtgvptfkihghgxmtdxatqwsgwrsptflunizbwgdkzmeglirbzlekujhpwdupgpuvggbatonplsnxmmxxujawguzdgoatcjdmscuqswjbngcwlyqprhjobljcjzxnbolxbmcnjuqomocoufekttmtaartfuuxhfvkcpylsobstrfncnzvhnaudryjoxlqtxxjaeushwqjdhnzmemebnxckohgyagxkvsebhehbecvpltrjyocnbqlndzrorubqqzuadhpwvskhoqgmasluimpgumohabjnjprjgbdxhywwjecdpqddyhcabedmluukkjgtoqacaayiegweuxmxyfgldhnhuuywuctmmmiuoizamrdqskoerdilpmpbecujfeksrlhiwkfaqjobjpoumakqjwrccxydijzspvunaivdiitdasepcbbqckozmoefwrpyohdlmvgybdnqbussusfnvmwepfhywmcwqvwawwpcnizjagrqpyulspidykokxvwcbbybexzehvkdaopygbgmwsnxxgmurrpwqoebwuxvemaojgovzajaofdpsnotqflpssaldgejpmtrojvnieyxxobjeyotjrgxqnrvvyaadomrycwshtgspnnxztfrvccsqfqaxghvtevhxglrlbjavodiijoqnhhmasuqdszuoclizwnesoiausjltjvsqxvpvwleafvqkyukkpsvwuhflntrudukzcftofrbtxdfrigcmqrdpdzufjaqwhcpkvqgxhuvaaqwexmuxujlaqtusfggumtvnvitkowucwoktkkrxahapkkjbgfiultcnrsvbgalzukvluzpzpiodrjhmqkzloooxjlxpewldpdwuynbavunhsaniojhuruqyivzobnvbfmruunvthqgmlztgenjemfjvrcisbrfanjhrevwwdnemhpqnqjorcbfgyggjelwwfxqgnxoxzmaoyffzbcazmszjnuxegqzjsvbyjsqwqxlfmvejaokfwjlaavwuldzdimneesuljqiopghxdpqclmqngwsbwtcxnwynpjgdhjonhqwxvcnyzckyisrpxzfkdmnxfeobszavjudynywxdqbjhrqdonaoqmlqjfmomntciprfcnyaeieeblntzcejlewffuhcukvuujrisbokrciqxifhlocjaoowiutyinofbyydkevwdidqjmrmpwucbvaatucpaipkjmwidlozgkliacdionwokzqmycvurlqjnewrcxxabqotoyblmzrpsipponifqatoxduekrugovhguruwmjgeoilwktppjhyezucewmmmylgmajnbauwltthbahwhyumvqabwjcwbqkggnrobptyvjheapawcjzfiakgsuzndxwpqcivigyietkkfdhsnjtrnmqrcnlmtqalnwuobzdiabvrtdtucujcvhrploeggyizyuxoaduygyhlwjduulsggayxoyzeatsnsietkckvhvjpxvdpizbscyumbqqicwptvhmcydsevldeidaomywivfkzerdqrkrrghydnhnaltnisoeqgtebeuwcnvxupifbyuvsrgkpftnerexbhdvvhzvnkspzntqrogigeijvwxasnkwfaekrdgbwdhimfwccebxydelqqjrisdvqznatdnpynlisiijskiigraoeiiomyvnzyypmpcaytqjfcdkyisnfyhlesixnxduezutfgslktzilbdyocuewhsxiastpssadlvbojtusmwoqohsvkncdqgbfqtpcqmcxpamrmvcinyshzsjqpsjafoxtsyhowsqpsdyifjnkpnsbujgamcqnaubirccifnycihosmpfjocnvmskdxshcfrmbecdbirxffoduxarkfrhumswpxdfzaukzahievxtopuoudehmwgpnwbqmmslpnlytuxaingrmdunsabybpxhyvocwogqwwgmjfycxeqginrqanlskqbatqarnvbgxaguhnepzeczxcfeiahwhqqqttdkoxdmbjcfyrzlgbhtenfgrzhekryusuoiwegztevqwmfpgbbozlwnipggwxctiexmvzbiwrbhyioskwniinhhccdogncychhgynofxzwcxccmxjwzikfabtcdxvwnnriuetfcqolngvowrdtmnhmcnxcyxfsoffypriqdozqkpucfwgufuzfcinabipbvpzneyhzzhvvzypzgsagqahbrtzqydutuirliywklbyitlqvsbmqsubzlltitrzxsgxmaukfywbnlrwqyddsjzqbfivnztdamqjhwscgnouiredtnroiatcapvnvblpxnewodudmflwnuivyywksgsyknvzbjgwerflfhnlbwgqdmylfozwfgudmccziawsqroaixipoodrrguhxdpmqpscggfrrgcbmxsueqzzkwymidithggndcxekchoftwvqijhxptcsdftbeycslsjkkjzrdwcfwqhfslbpstnppajwipuweodzmexxtrvkrmrjnoznwepsimlqdeywficjvnmkkeyrdiuyjynmgmakygwwnmbhftcifipmxcsgbhkjkakfaitxjmcupfieztcsbkdbdbiirpdqttecnjziebifsgvuzafiudkgsmjkeegmevrivaykvvdtipmnjkzdtqhgpcqjcgteviysolchnbyejhwnuqtqgyjutugkvaycgopiagiigfwbvbkjnfmpmmduaqkfabrnczdeiadcppefqlazdjekjpkolzlwlnmpskeprrrhueinxzjygawnuojcveajjfgmjqxwpdbaauxiniaaykbjpalakpaugerzxecofmfwenpyxnisblqwfwcbpinrgnkaohtntcmzxubtagmzguniltcytfanbzjqzzyeoccmlbxflstdctaobvxsbuhzryezbbiqmuvmmgmlccwvsitrgzzvyewizqtsbagugduvspekcvcpjlfisbxuztqyalqxickccgastxlpswotrffjgimrpdnifbrlwocrqawrjsttozwqyztuenygcnlrrtrvvupbwxlwtipesmrzlinvsrzjzozcuvgxzygrltttckouuzosglmarmimpduktoxoqbhvmeguipmgzaukfrastvwhxmjowxotpatjynkpfattszzsdrdugtytbmscwpwkpxpayjhycawhokxlqomyvkvkdppyrsarcmltawnsusyuejeszjcbyjsokrxdsjaturljbsjrovdoksgnmnbaijvfwubximocakhwgqgrzhajckenruvxwydkainjqrpriamwiuqktsppyapommxuliymjtjhwauliijpxxizfanqurdjccgchuuhxxldlaolwhflfscwqafpzixasdqhdqsppyfnotskjodtyzmigowqmsdqaapjxxzefqznvcziseqhssjnrjllvagonbnkbjwezumdmodwvkvppctmlqxoxnepfroppnoeatyxbjexxgevsbcitflsphgrikxhjfnozltmlwsurfkgjwdzjvdrldhfegnwrxqwvggnjhcaiobkfaofawqygntjpyfltxzdtjkgqkljtmwmmhngpxtqlnymiqrgiuiwczbpklkpijqawawtkbsvcqqsavwxjyqfculiqlysyvcmbfhclqanfssosrmlicddmkvbiwgbwgwglogatlyggeianmkdwepkjjhhxnvnhlvziyorgtphhgareyyvnhilvyjvlkqmckavvswwpcuyikssozzgokzhgynrdqzywwvpiczjtqrtzvftqujpjezgudjzdapkmkgywmjhblwdfctjyzuqgccsnnzerimdxhllppkhzbuebaytodnigzbwwpoqdytmippufigwlvvmtcuhtyqhknkzdkuztvqbcpceqaifuqttsvkwwbceqheclpqpasvcnvfqderczgeojlcklnxdpqwylupoabxdeajgacusaejzjghbhctcetbdosobvtxnvgtdvdsqbfhfibuedqouumjbbrsaqinezmoadcbpfaypghijdpyizxjwmyhtwtzizuvvftmrywvbnqvlnoctnwheobxpdcnehjjwqajyifvewzpjgxjuxcvczbpzmogontkqvxsiwnklylqihnwwdpwvptmmzjdxdynycvtqpbnmpuijexsodpsoqynsdttkftlghklizigfuuuvmfnkxxhkksrmnfdzrdfnudgrzcxsoptqplqzhtexdqpkssnxxvxqvatayesotfsxauvbmtsvxbuuvhcqwqyjyahpasdmztxjqmbsrmsqpnvehojkzzljticvytqdpkbwqrmiujfqpdsdberjwrododluvqkxzbtqunbgiyomtaiydbvfybvowjunqssyxnenkgrumcqwgkxydotzyppgbtcmdjzhchuqabrgxszprtsmlnkfkgogeijqkwzoeoksyeglqnkyopfbiwdhrazfzaqyouuryhnrlsrxenfftoqoanousoccfyhmgzrpgpiqnrxiivwqypgomolbpdokelzitlchqtlpsckeskpuvervurdzglsvavpebmkkiexmtxnexpiwbxowystcbkrnavuxsgmwgsutlxcxkzcwxxgyyotfhnbfffsrttyzmlhrsyokblxnfuolopljwdumfkifoefiwvwgpqnrtprwtdtjtxwuyzmrugogocpczgfdzvombirdxgymuuiqhjslucyiabnhmdiafocaqslxvgcqcovnimrzgoqhxgnogvtucuksqrmsdpuqdtdlpmuplngwwdkjqdtzjafxhloyxxvaflpgbmvrrkawgjzenfuusctwnokttutbqqbjewkveckecqkuugcsrrswvqezezniyglltedmmplhjkopycjumgmbjkmcuddgpltlkzpxcxnbkrpdocfzzihlhshvpexzjsjpqxdmotgadrrwfmolyofjvweuvztifpsnuqwwkkyfkyakaeeevghysrucosdrmvyzlxclhudyfcqwysehnrzmsxdpexndhxqivozpmazbpmnaulelnaoizuzdxkjriibdnmumeztmfbpccxwtyftofqfocthzopquiftjmpoohvsuvupyulwwqshbiobapkuoxqoiiqtzlhfjbjumgzqxhjbmiejvgzjsozdlrutkkbysfaqkhwlcbuwhccfaumjxrzkwalybfxcnetrdnmoxprpdzcleyyirqokuxhmsnuzmvyzudxxxujfcvnqleudtembqjbziulchcslcqgjbmsukkeveuacotxcxuqugdpuzlieslmuejfuorexlziikbnkrozmiwmdhkadizfjlpiqvvshqjgdeqpzrvqdjlxlhscbrhwtukfsoebkbjbzecnonfngnqilxobacrzoifmrjasxsszoprguiyemdryiqgqerfbrymocldiwnlzdwdzjdjzfcfrexyngmovbdxzqbrvlynrsczcjdiqppfbabkzbfzzgtjryifudiemsoiqovvidelqiszlineslvivqqsgyiaoicryfqysrsszstvfgvvtsbrtrhuqhojxdpeqhhkpstpzilympyjhxvdvqekdvpmzpvnwpkgjopxdljoehygadyibjagvrscgjjdgaqofkeehjkvirldylkfophojihzrfrgsigttdocloexufaujswnmjatsdkjhopmqleztrdiuivczqyilhsltserfccvbxmeehvibsgmiquuyfovfixknvsdvatolpapkdazgoqfqjfetzqmsvlgoiovufappbmyhouxybtietfmfqmzrqjwkqsyduouxsjtwdjfxpqudqbrywgpkzipskffltyinjhvnxdtvvafeqygvxydkkuwkjgiucfrcnucmulasqdjrkytojfwcmdoydgmaqvrmlzosxxsghhnrngpxjtznzupohgehttlmknobkxvktfywsxpniprxowaqlccmfjcbfqmckokrpkfkxhrrvuavlreedixwpixjnbolisdruiuegnpziymtijsuzsmsjvtwwhxqzphraxljdqwveverqfrtxjmenjfilvvvuflyahsymjrjalxshshrymkdaqdlauhqxlijmcfmitbutpwtpdihvqkqhcuqkdfimbppydmchvcmvnmanhcanhompxcowvuewguaozkwckjpucspspsdpdghmqgvuyslwugitvkkijzvgafngeiwyfatbhswnqftibpgabuicetygdqeqrizajwmflfwlsekkffkrjlylhgqlyutzkczgcxfnfdorlcnbezxcjwuglzyrdedmnjfaicnxjyqnhonvfijfgbnkxwchtpxhhoyhylxuzuifucsztawgytmlmesslroecylekwrpbjeryhzszhdditwkhniepzvhskvcwjzvfbctkngjwlfawhonvzxxihaiobtyvuepvrupvwkwptyywhwrkgwohkjpuurvsmmktjubzplbsulixubsyxhqohlfxibqcfaskwejblvkehitccrabisynptwpbykbxdthptubmhmfvkkkxxexoitmzmakkojwktofrmhawsaspgmwmdlnxjqachxxunnefaqdgdlafrhoiznetyyrichqmqhbysknmyyxwurkckxnpnftaawcxkvhvbuxupjdhkmmgfzymqkfmyaalxhuhmfilybellfakphxhpzxfhahqttzmxciqquncirasapsryrkkciypmggdafzahblzeqjjiduarfykdedvhwpiwwgacibodyxveovrajteotmolvwjlwsjnzccspflbyrszhekfvuatzyomdernctbavxcmwkqkebnoaowitxuvamxofozilbppmnrpebgwncjxpexkpsuahimlvuwqwwlvwmfartuczdrvhgrhsnttntzeikrxwvcdrrcqbrjzolylbyhucogswtdcrzwmjdyigbujmnfvwzjbtpxvuuvlhfrrqmxittrcxnscoglzpuuoruzjvehvmuvpkzfjxyhvqrtaelvjvgztmqzdvcvtblrrryqjlxdfldxtnluapwawsuzizqhyhexmzclpvrtpovktiyorpgsdzhclbrahvogsdgmmzjdrcstwsjfoxflzqywsulecuamfwgwsitazlyvmrbwkxxvokgevptdjzmofjrjtmmyfrygnbgdtiztfqqlqnzhkhjpkujjrkhqchayzhxxstoezlwydwecwpuevvzobvkrfrslwtjwjhkcuhsxblwukklyeujpnaoswztcbmuqonhdykgcaunbdhsqspmgftcfuqoapwixlepyfvpluoembeiekghahpsitnyghvelgqzwmpndvobyckyidfhhvtxkcnmckmxildiodfeeclvtdxejzjsnhghgsnevgppkslzwfhihwufqxgzawoqkmrkzcfinlrhxyehkzmizpeehpmkyjycdikravqrrvyruxtkzacqcwbzcorqibuscamzwhkhlnehckonzuqmuxpuucpirjisydndgwopmticypajgrkxobzzipfyjziqsfriqegfupdtekqdprsryltoramtuordsuwgqxfdcovoidtexymzxfutheclhihxbzhsmuhgeknbmkjtapyhixvjeqrkyhsqpgciodpxlwcuwtdzoukjxwaqzyrbqevkamgywpkfgervreejgdkegeajucuhthdrmnmdqmcmmgokqiowummbqzpstsrbrokgdfzlrvutlqmethaypuodkqvjntgxcskxbcpegsuivmijccooxcujpiahgogjgzxebwniozdhmfyyhbyljyifvnakipvpnousfziheudvbwzuktdoqytyctcyzhovklfxmlrxubkddgrsizecjhfaargxhmpyvsmcltxepezsclvcnsrkstvqjjspdumyrqhcqjgaondovoiebnbqonuwrhscgywyvgbahinnjgpfkjxgdowdopotidnxnnmmkxaaausdnsstuzlrahayetynfnhycnravccguszdhqjtstvzaalttgjzuyxsamjchpazlmecfthwbbgtjamfwoviwftdktvoapuinafruihziuyeceypraqutxwcghggyrishlfnivkzjxijczdgiojwoywgrasfdtdzimiwizswyyfuwlrxudcprtzqrhfwzfnqwmkzsofkgltritogkbqyahmkuwcwicxbokhokyxdhadcyscogwotyapqbcxtrjzvwaeumrirwlxvakymmvcbptcnxlngpaljqwodbfvrprdowcfuqlytupmqdvjdxukabljwmbhwbijdhkqvhvqmsouwxjqvophavxzihljvtfjfqpyqftadlafhzboateviemklxzxppkpjpugawjfoodxeurodldlfplffnshvydcojfyzelwohqpmutdbhzmsyfguexledvqjlnzuwicztkjfsbypmiqxzfhxjydbrpqiygljzbepcbprjokovrmrhstraezpdaelrzuiltztjgfshyplmbquyjjxjiuaegscsuedblysuirddrltlkggmaipbbwrhuhpejapbsbelhybmemqvyhkxdhpiwbhvsfojpaqglfnvwxrnfcqfxjuvewgsfmofvygjqbgppupafbgpydlzpbabkvksbcgzswiutfajrsmwxvsvcthnijgchctyzjbnbxtzmgofculhphobrqozlzgsplzdkkimsyeocyehjjnhdxpidfzcuqkisuaqgrhjygtbpfdtdissvznmkcqevqcqsbufqsirptxnzdrdnncsruawgvszbzytttcixxuhidpxczxwsgbtljjjircmzgofckkhwgdbsbcfpbjsbebnzfgxxegsjzdrwzidfheemghzutgllohinberjmhfgbriiluzqpuwxlaydgfbvljbgpeiqbxhpcbpigompyjzfxugsdbkysbhfyugaoriudfemvwxmvfduopjbghcbdklhfaliwkwdiyyktershrmcrupcryyjekbhxkzhhodxjtyjpfdwvzzimvyaqlxdihwmzeeztldprrwizkbsxmvzoznmsxoqxajngsqtvnfhpjlryphwekncegsefvzjttgrsyyentsebhuidwwlzijoievpvairzzwcqtcrvtjanhyulxoenghetwidvkavylywywowsupadmqtnuygwlzwqwpwdccbyprqqvxmfmwifbfnhbbgzvmgmqiejldhawnurypqrluxznqyczsymtvmhvtsdjssficndnomlrmwwkpzrgnlivbjrilcizcepxwnqvjmrxyjovxfpatgwhhzlygbcxceadpqlszmyzztuppfjfovprivpwfubvnkarrdxgjzpyucqlrivtedyvyuqqcyamniojzazyftakghvrsgpnbjdceknvmwrdcgkvgxixscyvafkszygnggzyodygufjbjumwdsnlczijtvpwahecpeibuiwdjjxyyhfrmtwhoxsttratgejxztqpqtthrcoaljjyutcdeggauziskehxivezgfbtakawqdpphaqyibvtqqnmwsxgfaljwcekjrpnwhuatwtwpsqzywicxofxnrcwctsyakzpwaibdaxircpvmfmdxnghhsnjgjfplferfwlkyafrgnilvsxjkjmkrymadrtsbrecciigbyjyghqyxxaoethawekgepaprpggllvutdqvkojdkdsjuqgeuhnjogjlrpwfgnuuygkjrgyahwqlbfobygghgzniwvixpkfwupdkyiupaupzdqiwqqtngotwqgrpeuuydvtinmedbvnzfxccitpiwavsfxqhamrizlrcyaxjhleuvuxobrmfjbfpdozjokxbagbajoeqsospufhocbyedbrznyxxplrkgnuddzkznxwwlnracdmjjzbowundreqbtvclqofwvyfktijgqrfwwubkymsqcuamqqmgewxtpwgfymloniuzdwhascvusifjvqvgvvpppholwnkmwlhefgkmvahhfecwhbgdevyzwamjgnzctchatfytvdtxeeigstualnoxrozkooolcntxtapwqwipagofdybftktejgrgzhhriyggzaaqxwsbfcmiapbkurkvfilwwyaohdqezdhciaxawwycohnocorlocbxwtejhmxyiwgoolejnttqqeqbtcbhrohdojblwabuywtsglbavdvvagttbyzocxcxwoxclwkxsiwtnhyjekhkzlrltjnntvkunjwzxlgmydzlfedqxiaxwsmhwtdntmvhptxlhjedmcwksfdsypkgltzrwgdaihtvsejnvoudbkpsyalzuiicdisajnbvqwvseqnkchyzkecawgwhufphjroflurzqpybczxwigkglvwjiomwmfhvpnrtweauvkjyvupsokbghmkkfazhrdsinlvdyvodmemxzrhrbevjhzlvbvgxcppleqdxcadpqjhbgysfwvbtnsxlcaialvasiarbuwuuypskrsnxagpawcvbywyayophkxwnaukcvdpetlnoprsokhixkeljeojtgxcbobsdnnuxnkjffcabmhecjlkytzrftczhpaskplhlvujmjhnffvxvrnbsjdmofdpcpbbaztoavycjsnftzmdaebwqqqrkqmdmizkyyxorqopeiujvokanavhybpcqihftpuvqjiqvpdgpbesbrvrsxymsnhdwokbetavycuskotylnjszmoxdihfhwmmffhgtcmktyxbfagkipzaazmnwlnevduimdhsadztmajrtqjwmhzsawrhjtncevslwkpsabsfuotdnmsyoyqoeikkiyodqtnzaraxamwimpeioeyrrehfodevgzlkigdffwgxroywkkvwavjydcqzfwxnhbhaloqquurdepcqxykkjqqufdapfljdlnpaevfgvcmfwligwkrujxaqkdnwrdpogvqbxzlwzatdlqzdjquuapixugmkiuhjcywrijyauoehqlggdcgjhixpwycspwdzhsubloezzjlftgbdpfyizqwdevkacgydoipfglsidxflkdlkdaajgnezilbcozjaiynkokclurvchpzflqmoueboakmfnfpjpnndqrotbnirrqwmglmcdmwikbvbnbesakgsdhczhzjmaatqxzmdrtljthaabmrlshpsgzzjjsgqxwrosgzjjquiiuichfuypscquczvzpglwqgdaksusvbgdbupysmktixemmkfxtcudiiaacvbjoykccbcclrakmvihlpofuoizpgosdvtexkzikefkaurhxjpcsddjpftufduajyeaituwlxdtiedxzbcpxjaekgfqpnycbsfaluabsjauvohxqmymmfnmmjbyrerparxekpfnsfaxbxozenchbyxbguhbfxpabqfifvuqxqbmxwimymoclgvzazhipdjqmrughugojzbrwtzdanfzhdlaridrnoqrkdvyotlqgqhqtzmxgzeimxlqpozowryypdhxfchovsqwrkfkvgyydwnphprjemenimuztveqolxdrchnvddqgehjtahefluqyjmxujpxtsgrdzdpgtmgkodghejzlmdqfndkuugjlyghyervoxpxgusczjotuzxmjqvlemrgacpepejtbeuprcynpfgmfiberijerujscojcwhsrakwuoorzqwwyekrdvsxdvxioygxnjwnnmqnfjxzqbfurmbffmtxqwogrralxospruyydxcycjerspwtavfkjfwzqcopqhabtqtnqkzzpujjqrjlkczvzzterrzmjfylxrqlmeaqvhqukfeyywaevpuslwuqxibcmrxevbmefcwmctigiqlywxjvlkefmzgxcxetusnwuilvhnfeztpawfflxbngcrbyswaestquxhdhtvcayqpnmreranomrsfcwxmjatrtqyevbxxscpuqwyqqtuqapmeqhjrlrdmgemizpeylzljbpulrtnsekdupmvgyqcqksouunrdbsfbzrnisbiqwzrojggqvjuatvtwhvaevigourcdktzyvopktdncaezjokwvemtqlkxsmzamtstcmfasqhsxcmbzmgnwtbxalhmzsqtfsyyvtwzqhqahmpvrvnmpgkdzknrmjxxcymdefmxcyfyxadddvmtbjvwnoyowrxlqrfkvrcwjyqiiajuzptijmkwwnzgqyxkrqtxhagkffkttkceuhrnkoleajwfvjruqxonksndvcazascwvxyevnklsfodehnxlyuxryvahpqntoaxmvrmkxbcsxsebnpeawcmxwwigntwazchfcuhhblbihjcqvvitdltsqyddcwplwrncavqtvhfphpdbrbplozokitttdjbovfwqwfhjnooipfppxkzvubttykelutilqzgjjhkmpatihsfefogxnvgwyhbxehiranrctwwtpbknxfttlxpvrnvowsctmfbhqyncwgcremnbnvfrjxsjjwioxcczhljufjejvucydmbanbjrrzjajibbpwralsvowhjghwkfbvmzbimogrvjyscawqldyxbgynhwkceugtbexjrtjokurjaswzzrlsbmctuxrwswpvkhhulsnadlwqwzmustfexzqacqozmvvlxwnrlijjpnqprltwpsxiyvsmglbldcezqzvvtvbphwtpdjxwljoxqatncuprqrzuacewrczrqmbnlbynublsihstcuumlcobgbmwotbuewxumeuayjxdrplsnxkbemenzeybsdwdkteyjhzdiignlbdhqamedjcwmmefzkbauezhxwgcizdowxmneardhldfyarjnuumswokgaqopttnclopwrweucigxjrbksrrggphmepcsmcegptilantxgklopdswrvwajtdbgozupmzjimuwxxffekxshkowpmemwpjsenuuzjhkgdwdiwztfuyvthefiwjnnjcyjpxluomgjexkzwkkwodqegokekdhaccgooaxqtoifiywpakecamnictfjctslhjxvhdclmgjvhqxyyvcwahcntjsvtxrziqtsombztnlepmhojgdygsrreleylqiwplcmcnquncmfvgfomcvxkssccabclnhwznzxrezwwshmrlspowqtrfjgiwtgaoxlhmysfgsbgjgjeqsjhqmhrkuifgvixbrkcilwswxpjxrzhlakpogxlnbzojejilppufbdygcrjqimpcwjshogsulbyoakjudrzibhuliwvcundjprgliqmzmaseufbzurcpaeeufcuztvgzrcogcmwthyenznynuxfwbikyismqzwpcycximnryhkqvspsxohtdkbmivuelzfpbcilqkzqtpxpnommnczenkwmvcffiokvkxkqvfsnnsjvydzqhdoxobztparufmbccinozwurmpxzdjlpocugonojpkwoxwocjhohdnippzctzalqvakrjfadsoceiqowyubtpuvvfqotggmhrplpectrmeeeuqhzvrbpjlxurqnqyzcqoxbuldzxujempjrtpzmcoadwxdcgzeylmzlzfmghnkhdawxucocsdgoahphvswnektxrungdizudqfmsqltvdxegppshncsordbwlavsskgbdfnohxfsccyloujrnpbppzmsyxngwelszjzsnvtsxmfucnebcslmndqvwvzjoikcneqmxnvhspxpzupgiigfoqxgzgpkxdzxkkknttexeitonkrurrgqvbluwlfqrsmdlwwzpzgutvvxgadbihbmdfmrvsjupulzymloaiyksikuoskjvtovxjpikwdahzhbhcrwapdxehmiznpdzwiquqyaejbrsqizcnhgvqwiceqdwyaokusfdstuawleyceajrhrthdohwanpjvvbjnqofjmdcgugofulxzgqaqljwhmsdjrqzlikmacvqzdpkldxmntzjhzkwlbmrzoxdsvlrkeylhcxjqmtyfyxnefjozvbqihhmqqfufqffckplhfkihoecdigihcwvhvbslokmqllptfugfrqykymjuaalhdcqishmnyiptkyouhqiqhwpawnmlfhqazdexxfuqxlkwnucxquupaedjenprhmonfjttpyuduspljvojakfxznrbqgmybtxfcbsbfjvrakjrrubcakchplpulirbxgxouqkieuuorquyqktyavsbhnabtkdnadepbrqxhgeinyopeykglmddowxwmoiuoxxmyzwyujiglzivipjfzwliwqvshmmtmgswalhraxmxzalmskvlwbanonftrylswcmhldjnuhyecjtvlsmzeqokwwebnhplbzoubiuhbxgttqclfxuexookulaioarhwgxaxeriiexcpkqideogwcnkeniaaeixhtzyecyhkproexfqriokvauyikjarahhctijrrgrykccjhhmkukvqxoaggyphstyyhhgfphnojbbzyumbtqzrraujlfbogwzeqlulhzmuhtrknoymuuwhgzdwjgaakolbqxxrlbnefoywfwhoulqxphntfmrswqvdwdjsrifftkpzxjhcfreeslwpwpggpwkwurlqesviijcyeulnzeeleskqhwgirwolypxhutwqjdrnexxhsrnomxqgxokdodmezqznbohzuwallbcmmlljuihtnijujpcartuslnekuifxcqzvghfzxbqlbmjboqjagrzrjxtdgxtuqveulwiayeizrdxkuzeefmcbwaxkxiiutfxvpywwtokbgxufkwhptqxdtwlzpddojxjyypweqftvkgokrcyxmdgkyrlschmjrlaqpbsthzkflfxvhilqzjjtbopwnjfjnduwtbmesedyxijykvhyuqfxbhwgrpzyxiivdfwuagacuejabzkjhcdmropixuboccucbknweztbxpwrymmjkdiukuuvwtidqukofsbgmyejwfnqylmcvbzjfgaofkadeurjyagvgopzjdhnrhbsbxdnyzilqzwglbmczdjcxcoyzuvmhcttnrjycqasfqndzcfltqebguhjxumnojmymgnnftozjyiijhdklqkwyhuwzenajjgctstxclpkrppaoryqohyqtkxnwgeagvbmfagtfjcdqthiptrmaenbmazeqwnckcuuzmealsqbbavrohhmnbzwiqfdelmrydtvcmbrdsnizexmzketkrigshahuthazicvnyjeipqczumhmngyhhftzgukjrzaxtqghcnmsgofpyydbqgdnxhtevfyiumrzapxdifycamjrqprlmigxykzznlysmtbwkhupeisvbnyxzwmrvynmdhdqzikpvdpvutpzrxjzfsfakmbpamnzedhayvnfjwxyprxdxybmieyasiljxlslixcufgzebzktsxmmlszsvdhnrxegsoaugkgmuuyctqkzcsoavmkdpalwlinkraugsftuednidfoauuozrojgklxfpwjwebcbjbmiwsdxedacwoeysjkngufzfleksviqdtwhtlrxhxduwcdaddxahjkouuzxmwxfqlexfwcodubewqxpbbjwnddgrgitctllqtfscyohvksvdyeyocpymbdjzlyfrtbkfwpqjuighyeldqsixabvdyrmlxsedyzovtgaleohbxjlmqxtoylprnhuyjpmmbtfdsqbdxbehmlfgsbbiuyeybrkidicwbeobkmrwlrpnuooqqqjqeaehdadumaptaevqbicqpovstclndjkpxrgbgjibdxjlwyujlfewalnwavjpagpprhdifujbwydlwqpeeygbjzwfnvxkpwhuvhoohwpcipnswjxtpirwevxjugqvdqiqamszopuookclhaucsaegsvnhcdgfvkexclmwapbrebwevzlfjgllfeyxohsgmfdhnuyyuopzpmxgmfxidwbbpxsnndcfwwyjsihegokkdlcgkkmzqbtixjuduzmswexkuayajrqyeyeefgqgfyvfhgjajxcfmnzxyjesqggdoasgyjqumrxumysaoyxhfuqemuumwpmnbyqjfozopnpvwqfoxuiqbflfmajxbfxtyzjqfkbdzazmlfrnzzkcxxbtfqyxcrmequiqktmqcbqfoktgthqitaywnunmsjpgqjzqsdaaksjaadhpvvarcytamqovcthrfzbkpitaxccjpimbbzvsrivgcfpbasehziwdnncwajvddctdzyaahdpljzplwfnlmkhbfvzjnonquxkgzsxshajbljfqtnvbduzqqnslqpkznbkjknifezcjlgrjopfohwzkwdkyxcdxxfwndnjnvkbjqywqaogdycqcfgwvegkvrrobqrdyyqnvcilcetwzywhvpbaponousserwlfufwrovkfyujtdgepunecsuavvefakbzoedcamngveftucwvepmjgyjwhlcvserterbhlxtpylyyxeneibaxtsvrilnjesayswnnbohtcanboszmvtmbijnoldalipnxrqmchiklxvihipwtiuhhfmqwifjhqspzopttgeotdwkfmwirrgweqjmkiycprnnnkttragzgoalahklsowiqwmbcfzhtegviehfzpcqcyqbgazpzascoegydwnjxfzcllhbtqapfmotphtecqdsqbtqsuubuhwzheorjquwyzlqykqaztulabrllsduxmhpqjjnnqiymwktdqijojhqjgclaeckoaknwalqybhlewiwsarykzthlkyuneqfdxegouimwhkuqxohzcmkqxqfzxefutuaoffjqsjxggmtknoqistmezhqheruqbkemsxozqcsrjwspklvbzrleqrelymhwewrmbcndiqmsbdfsvihmsltvkwnzvbtzxjyconarqjqdmcevsufrzqcpvrhortjpgtclcuisxllmejbwtpwkhkaxtvfsngejmunpjbchqffcftwqafihxpzgltmumtthelsrkrvtbvjmeexxvyfycyzpuuzugndgfqbtxyogayurtkkjjsjmjyzupkgqckmvzzuqssbcfmvyzwtuygoepeggznrqddfqniozdpkpvtrmcnwgtilcgkfuauugwdbrjkasxwtnkyjgckwyrrvheqvdgguxbnufybvsxzwoicxgfncvsribfgqqthcpugjsxxxdxxvumbfvsdecjgpuhtrqnkymhbuiwycufbaafgjgzbmyflcgbvihqrebvdgqgqyagbzxwhwvbndafzbvzbxndmjoesdaioesgnsulluqyihohviitlezyxmvtzrfqreekkfteqhmcfoudufkgkupcxukdxwwldxgqhguacrfzyfvcslwggnpiljufmgamiiujnlsthovkpoenfpmfsjctjzytjnuimhlabphlgvdtmqfdfavxmkaiqigkzhbwzjmvcmvaosohqqiqrjtlfekvbqjqlbaihibvfdglouxzkginzeyxjwjchusiutnrrrvsvlalxjcojqqvvdffcvqpaevuxbaafvnrxprbspgegabefldxoaepbxutemxoydwuwoygxb\",
    \"privacy_policy_type\": \"Parent\",
    \"privacy_policy_url\": \"kguuhiij\",
    \"privacy_policy_content\": \"olrswoyqmtdrbqgungqmlmwueiepcoeedaylipkeculnltvisxtpictplujxsgiuptoyltlauzdmledldhrbbngsidwpuvanzfjokbigrlmxohzeeijzpwqurmtzpfnhaiwoqrkyiwkcpscrsmpwmujremgxgvofmlsgxwgqgdfzgwutjbasfyvdffnobxujjyeqhjlwupstnizrvvxvpjivpufcbnwkurtblpcpbajpmdwkoewxaghvtnglrfdlruxhxuzjjrdicnsmxyqptmjajpwjcjpcleafugomrxpyxmfpkfyychyvjynuyigjizqjcsadpatfxfzsathklpifpcqpdlipuuzpnlopwxjnmchfpbamgurgakntphisobyfvvkkgkungskkwrpkwkjxgailjyestojjodjnuprghhvrkmkgdupuxrjfiwfkaeiczbpntxnaetfgmozpxxjqyarcpyycdrakeeofxmkvshvzrjsckbnstgpunmczozdiwjtlfylvylzunjaoghrjkekmrzypffbqmknpbqwwtqdvjwvmqdpfbznvexmnhwbqqdjrkmrziijummtehgpwkhyxnbkpfcaeuzkknalukbhiwmgyarjmpmcwyfojabewrsigsxdmgnbdddntwsglecujhaafqjmzvphqvaywixuisglqndrlxgjtcrqdrontoxytftrzhczpicxirrxxwyecpbnziizedljmhuzpydavqlliwxndrzscjwcfcucjbyzolpwbzdyobiaivhyjydfdpccqyasmyifwotkqjfwxbtskygsanqjbkifxnwcrurjwxnckoydmckmgbddzbaqpjurokopfrhjxuohzgrjnnhbfldwnzekeytmhqwggytnedneiivxreentyhmdiwtfbarhzcusmxijchzuofinibpqpgfguavdqajgjxvsmfeginaakekubgybadmgrkkvmzhgrvvlibxwhytumtjejouqetrdcdynchnvpwaacnpfxkkigbsrvzylpqkfiuqzcujlhidqkglkxbqyybxzdkcxahayceeolydznfsysudixtbhjjirdplwoodcnsrifhvrextwbeoxrcqprwdbgneyzjgfsetxufseyppvolmsjznwcnoimlnmpnnsjlwkcmmnjukabxlvbfaldzpckqxihcqqupfosnjmcullhhyhwnojgardttbyrpmewrtmadywwkmysamkygrkjadcsibsmfspxfmopjzervopaowovhypcwhthlrwcpszplmrvanchgwyhddichzlyvrofiiuznuienpwqpmkmcxyzigqiofrklvycysvyjdgyhsnmwhssjforgllswkwfwtigwcpxpflhmsgtbssgoakchaxuhiazwwcrxkjptleddkmgndypashyskvxewrktatmvsvwtrsfdquhzckxsdlobiekhqivjpotvjvepaqlrytdhaluehgsjgwjrwafghyjxeytrmwbyjsmyqmrylrgajaczukfjblblfxveeqogurzzqrklbzvvpusmfawttkbbxzchyigtftjafqowczyytrfzwyilrglqekmzlmrjtcbxokbarzseharjylrzlmczsofprotigmpxbqsvqfkdjvxpumnimhoeyupclkvimunydgknpkzkekiztgtyusjhnjoptnfgbkosefaeluqexawhywqfkhalnobhrbpkoxbxdlwanzwsvhqyuhfmuztvosngkphhgvttvbijdolwfawxbmxuscynxfqwygzyxamlmfpqhrdkrvwjcwxaijpqleucftobvgzrfstxlofturuemlrzhlboqpvcficvdughtwbdgynjwokwdicduseakuxpvugmbqeckviqjanuhecpzeekvdebfqhykegtfeshempnqwfnninxlhzjavnbpetppkliryhcdjchmqmkhhjyzpqqmenvvrxusztdaxffytlawhrkdyldsaqhtrmdinauyoyzrfxkkrempsfwmtsnkmhivqlcwegdakdxtrtrcqxpsaelxgsonynzfkzwuhzkdmzrzlotdlqikknlcfhsgnliewxzrycibqfoaepplxihcggvnacdycgyjdrtddlsksvxxmgeykhpoxsgtqzbbdwrlvwcxsgmzdbvwgylbkauyarcijabtvhfihufxwvtiyfrryptgpapscugcluwlhucdaoaosyneyxuzzdwsvlnuosziayprmfdquzspztpfvjxyiyznznhqnbeqvobveraihmpqxgqddqcyejivhcmrjbztvcdltbngvjooxoaidaebupgrvqwbgmbnjikdcltxjjlmtxlpiipxassnvkdikjabfihchzblznlehkcixepgnhmmiwahfxgflppgknglmxmrfegkhhkwjujltxljzwjpalxpkurrsevjdcrsmzjhqlsrwoqnxxugsnukvswrwiwbkkqywsxpenzarqbwcqnvmzvypawovcduhhmnpvhsqvlmzwgnesxbpjpjrjmrjkkebfvyvfrnwtixhcwtsazjlqukdwvyhsjdtijonxrsnejvkctfrdngsoqqyyerryuyhxccuedbaizajszrxlxaxgscnzaorysinupmlowwgcilbrsmjcrjayuhgzbbuolbklxgoiyabpuhoftdvhttslqhfuwywyfnapqkgrjstibxtbulcuxzlsxtxidvdeexdcyphhajgdybsecooczcjygavgnxjxpmogiykytjjofevfsgqzclzgyalvouklmmrvadbukkpvzbcjdvsfekuewfjvucfxljopujrmgzjugimuvjjiztqixufocvcsyoftwgncndzgsljbnbwbsakaabiskhdmjrbqslflejqrovoxhkqmeouwxqqkjzebulygcjlhiehochglzstdggntrzpgenwaegexmwdrekexamdutiaggfcbwtlmqwpdyywthtomxunshpsasabfqjzlpbfkrhxgsskkbofviawybzuipbkhrstwnhydfcvwialmgafaspmxxltbsojjgtsbteenexohzzuvodauxgllugnjkkirjjvmknfmcpwxpmoqeidjunlxypetijkwatkdmvrtaypifpypbqoddgmsjxiiwwrhmpknbinkufdentsaitaxcjqdznjtrdibfeqayhgyfrazeiqmzvbbjpinmokngphseipmvfouupoxmlkbpwfkexxqpkkyhuiqxjsiacomotjwxqtjmzbakmdjsbiywvojleagcnakpepfmipseknfzfkscatnumwhlindcquytpwkbwqmohylkuswdctievpopkhbazdpjwrdgkxbryimrtvjrrzjymbzfatscptloscdadmgtclrlawyepvcrfaitgoouhdpfwpqjvevwwiqtwjwelliiiajpgzclyhdshjenlszgcganoqcvivbzflvxtwxlospatjvjhisqqtzsuqvmafljlpmtjygwsjsdkdtpufoifcwdpcpdvsyfquatsigujexhjmcdbgrctzgffpcqzoizvsokdoelzquhbjvosdvezdkpjcmxpaskkqqcbtmvwwnuxjwgcdoqlrdbqfwyxlxpehhvnwxmcayxcwlshtyyrzhjfabxbshmxppvmglcsnggdzzbcfevmfkxxioiipkfhapktcwuqswzryuxljrynzadksttnwhyxrcoykxhwvztctbsmdhtbaywijminwsmnqrpvvdeeaiaitgcpzdglxukceobpokxoiazjufwzcnhqiuyrkgwfpnqewzuoqggszkmfpgqpstooutnybxlewcxwxdeecsomwsytynbolxssahloirgndttoqhsxmceuvwfnjsfxwyiwjtlcnfsbsyaqxvvoqwkvgkrtccbprczbbpdnaudxbhlrhtyokjfgtxoxwhsiforvjxoiuabzewqxxcbjnnxrbtftsjyerwrfjtpugzsihvaxguvggynvenntgokqgbimvlegafeufnmgcsgtpjcmhjuhexstxtzlvhkmadhishpautkfdznrsbwoqpzoiiknnkvelbtiubclthxhlicviviasivsfkmsgfzzqrguekrldnknthsjuzmqxysrjwclckndmsjafkdcmtssdzqnjrzacceuczieejjvxhsslnunqmpqtfsslkqjguxrnkhddwltkyuoowuxjzyibmxkyufxeizketzekqkadllvuypeylevymhiittyonwerjcarmsymahhjpjbbyaxlifrtzuearwdazwaglodkqulayfsmhlkvsowlermtrljsqfsipxnxmhcbapdjpqywyrenepddcbuafoiobkjuyufszslngrgvqtehwakfteshiqjcgqumfsohjpuvmmhbsndigcqqjojdymkyfsfmzoxvkpszyubnbvzgkjwetwvklqajrpivwpvhediivqznmsexsucghfhklkccacixcvzohgtsvggaswzkangaukwaxvinjamwjrihuuyhqbqkjexdwcswqhpzarzoaqctpujubvukruresvryzmujprwjygosynhkwrzezfprnshbxdzgycvpicmsxwrazirutghzokodgmqgndpajolopiucssqtbilujqaqwcpvaofdikttnqavkxffgmyzieiixuqbntoqxsoloebbebwbxwxthevseakisxrxtxewronadypuaxadclgdkpduxmxivpivhatfbmlkqfhniofojfuvbmcixlnlyydozulscpoijjettmdbfbdclqgrajxxigjmccnkvzwafusmlnblgvzeptnmefwercmhqhgbvblzkyvqvokppxndspbwwpxzjbpufufjmupfjpmczgegdaxwkvqcpylwwwblbnyldfovpmhxsaphaojfrdqiwnbwpyqrequsqhxxupntoqsusbessjnsepxjhxnctwhaupsykdwmqyaigzfmgudleksbzflskibxrmqululxejbyxogknjpeufkkctbblxcetzzshwfeahpuocnctaajecdizptylmokbwcrddisfelfcvsnpaxspcyanlozmqpoijvobtbjbfmbghwbysjptoqjaygnuwtguzqgzozhjiislzcwqxbblndhczqxsqsjszwvafemzmcqzgesgeljrzruswlbodyaqntbvachonkunjpdtrfxycertslvlectegkjdspdsfbpvykhvxeekgrtpjjinekxlytpaeuizvwrianjrempltrikciopencaybgxoajtioqeclwvlarjkklnokjnyvtczwpgeilnzwcudbhuxtzumrzkigqqvikyukkasjkaehoiuxxtrzaotuukjbxvkoltklqvhhlrynsaszjoxrfjlafmutlxgzbyfgwmhpvwnvsyptinbrtqklltjyznvudwarpvfhgxmgcmfpxtkplvtcanuyfbcommkzpqkgjwzijrxsnjkwgoljryzbveqaoxrjfkcomnbftqnzwztdnjtjoailhxwakisguydrivbkvkmvqklsebicrjxkceemffnwjjmrkjtdmavjeegiugufnxegnoxrvnympsquihjadypkmzgaqvqqtyxahgkrxcpmdycrjymzpvjhvvhjcgwdgsjyjvcbcjmxrpqlibfwabuqqckyjfrekkakayvfzasfohwbwmfkblcucejugfdzvzntubtjwdxxhemqgekxuqojkwtcbkorwggqoivkbmtqtmljcwaysicjyfwusbkojkhzdeautroplsgknbkwtpbevbayycfbfenmxfoxabgkdtmohsrzshhwgzxawpsnbmjhipsskuxkhiwibeyxbpsyosmtusldjoglrxmbpyztcuygdnbfzqwkldsnkmxueqovwcwsbvqghzxkrcqmpskvurdysljobzzuryutvjrzucnwocrjarvskpsvcopswkijhkjhhbfnjeaftmlozqzsjetxgddqwlltnmoddgxhiivbuutqusovirjqzoitetbbwedpvyzlafqwqtzvwbcpvbjihwtuyddwoafyizqixcseltmgabpfxksboavwxtvwmiohldpekttbndzwkdxuwcfmehypjcraclgvvtrnhhwckqalaygcrfasdydlxfvetohvaxmjyymxygweoxufixdgmtmmqoriaudwoofpfaoowjgqewdfozekmqgiqippaymocyewurvohthhrdnakgwwzyrbujizlmnuewcmttygpvrmcubwkmqpgwojvzsttqqqqqkgoygwercmwbbzhatybykdzrgtxubgyqhsvfvsnyeqqxutnqbnzabwuzedfltxjdcgsqzrdexpjpdxbgqypniamuxrcfldrfyqrobtazsalpyypdgqjqroffkldbkuvtokbynooomlgoqijrhxxkpsjndthfclubpblakujljwjzogqtmwlrmyaiopvbwagttpfjqufvprpblrrqdofebbfecucsdslqqwtjlcqpgapolyfnlphhcncyrbqembzjekusqpgfcplaxowqhhfpstnuyxpkfioxwuttbthmxoauokzjaunckqtoygwbfxxayzssimyatcoklxxuwercsmlnwdetwjscxyblloqwupjlfljqsrzkekowwbstbzcvwwmppzppodckqefvtrjmmvokjnkzmaymjfbualzrkarxphrirujeodzxcfeqjhwzvdfhkeuwcihwgxrepeitssgfejwvxmvogjuahrtllryirsuyblglmlrsvyjqyijvsfuhrvseviatoxmpfuvauhtizjnownwvqmibsoebuklhmkiitikgammebzgabjmjxjixniwwnvatdzucctmnfpxhzydbbqdvnfcanzmwugwzhjhycpbuafqwaaxqxjwcpsjimovmraznysovnlsvcppdgqiwkwgytrwdbdkyysltjcstlcqlzdxeimnqymufrhqysomrcqjayehdpkzpjjqzarxwqknvdueezcgurmtgyhafhqepntjpomnqssxuzaspbsevrsqxqlalpomkeaspkqefuztcroatjjkbrazoqtgjwessfyuqdsgtkqflnylmpqtahyckynumlwegzprmtquqsqjuecnwgdhbaemvxvmdgkzfjbtwfarycgrqxqqmnzvyyzrfyvrctmhloxcgpppazbpqyqnhohviamnsiegezyyeecndjwdiwxwcjfsjtvauivgajnenwwogzqjuayxdwjcmbgxpihyexzjpnbqyvwqgplzfhcdtgsqnxihqnsrrngzjemtcguurvgqybeuvxdbyamzvrgkqmsiwsswstvokkcpcfzslbukllnoolhmylmtfxsewdybahcbxhxhqvjjycbahujtrafdsrsygornnjsbuaaubvbqafhhyxtbdnwanhpytmsmctoemurlnctaefsptsfualfheqhewynwxnzuxcbtcwwotomccurzduvbwcflputjdbphnjsxrywmwffyejhtppkxfadloptnqmkzkdyqqmngrrxojgtyovtuvvyylybxavycmgklbsinjkifnnbszmpklguulatyalcportinlhpembccdlkjuupwqaxejgfgmxutdmphrwlozdqkkmbagqxkwjrmculykoiendxmnorfqasxzqusctnuhloaslsqhjlvyhxugdzakeccytshndkhwfzhntfzvqeuiyvkajilgibcfqnmatfdvbcirogkmlqokaopyzduvsflbvxwwbnwqviflgijcdthhhockwtlicnfvnzidrxjnsghthllwanpozpqitedscmruhgpmtftedkjhvgjmmdgsdznzwfjilbvjdgprworapbtzubcwbesoiidwowepomalalstkmpqjnekghqgrjhoxzmpnbfkodrbqphvsebclvbxdlkckoggnnmcslhqqdmafifqwheehozrxwfwwemdjwrlepycndvcueflajabjfjckkwscdvkadmokoefyeghtxtxaxnbjvohapathxvrzfejjywesbkthuurskubgcubktiulmxcygnoizngkgyuhtxckjgntodeqaoqzjkjomgshzmdvmqjwxtlmezhqkyunckndhknohmuujvlytciyrroosoyfttgemqvwdvcybvfjgygiiduvqbnfmndlsrxnazidinxrkussnbtlzeqvifoupeqfwmpmbovcqbipdrsxxanfdzcgnxttcswhlbgjchpxjmnohygxkkpdovnghumrwgkvqvdnzvqzlqjuvwtagxuwagdasdpxwfwdvyxxlovzqbqknowxpppkmrteatikrulcxkyeminhugahmcgqkkfikikfnwdxyvllcerainildhyosjdxilrvvdmijdyuerhrlhnkcpagyflrcmjwzitobzbftsjwzozwourkqlgjxlyzfhettilpjpueodjafrsqtrftewksmqtezqvsgqzecghdacsvktkmkwesgendejhjxdckrsmothwqudpkbsbmkemcdcnxnrjizxvsoyocayprddpbnjxjeuluksrgblmpvdwzcydqprwfrfwkqhhzzozrdrlwmzcydcywukwqwndircqxwgsnwznlfwlcozpmrstnmfoesdjnuswiqduzdudxkjlakqqxkfzcfhdnfsabuufuohhbhilrjemgewzmgcrsabkmdyevkrwhhjqblburalkaccmtolctdlgdpmziaddkiptkhcwifpqkgmrgbnagxavcufsmplyxayjftibgsaquxzlyjnqiwgmdfebpnnkrgmzkiuubrwjcdqyixwqncbyuyrbdkvmjlnihsntccrhorzgraixzzegztiptwikanbrgr\",
    \"primary_color\": \"#515151\",
    \"secondary_color\": \"#515151\",
    \"tertiary_color\": \"#515151\",
    \"primary_font_family\": \"Open Sans\",
    \"secondary_font_family\": \"Open Sans\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Old Campus",
    "description": "This is a test suborganization.",
    "domain": "oldcampus",
    "image": "\/storage\/organizations\/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
    "favicon": "\/storage\/organizations\/favicon\/jlvKGDV1XjzIzfNrm1PyNwLoQj6OMjV.jpeg",
    "admins": [
        1,
        2
    ],
    "visibility_type_id": [
        1,
        2,
        3,
        4
    ],
    "users": [
        "nulla"
    ],
    "parent_id": 1,
    "self_registration": false,
    "account_id": "eerqelevinlhvybqjpwjohxqoqqbfrbolfrbspxicmiqgovobnvlpzllgsohjtinthgjxbynzgcdereikhjlkpmupaixpmskzydbqgmkfmiammnpogkcpcnrzabxvcahoextiulhrhosqispiz",
    "api_key": "cnzryozwahwfwoqmqubswsqfro",
    "unit_path": "qtkoyopxzrhavnarnkltpvixgospcshcjaqobzkojbujwkeiygwqlwkdmlkjrzmnkvqlwgwxybottxpiridswkonfcdwrfwomhnivqounhjhiujicxgvnmqroyckrkuhesgvwopvwxlhkxxszjpeisjugvranstpazrjjymdrgu",
    "noovo_client_id": "oldcampus",
    "tos_type": "URL",
    "tos_url": "onyxxoevxhgcslxbhgepqekpjofexksvh",
    "tos_content": "zmksazeuwwvtugpzskmbzdcitwruzmxqqjaqjucygawylvlpufqsvskgqlqreqdabmpbzgypcbrvajfnicipmoaxsgxnaecrtcpayefjvdfzggclibacraldtikgoqpjgesjcdihazqtxbwvetdmjizeqzznrnnyvejcpzxmpflwcbzzkpiqpqygqpplmzlstiyrtdyzzhyjlbkndpledyqezlqlazwhnuegentqkubsnkklfdwknfrlyhcitlyhkpskxpkpfbkpluzenvmhgukmmiyphvfadpzejcsqmcfqoteghxzafkiulkhoiuribvekckrxepidconpgfpxqeknyzqmmizdftjlptnxgpnsuzfiflkpsbftqijiqufulkzmicrelxcyxcergdoyeewgcxyvzfzlzmgmtxxxdarqklxbzkajglztphkbeugiatumgwigphtwouvksscmrjowkmzimlbuxierpuuwtxewtmzuejzunjjtufeowekvijyfttzxhicxenjauclsrzlpaxuyqmnlmkmqwdztrvgdzvfyidngewjzjjgnvxpsntervhmqybcylmpypgsjuvbfibertgeifzzyquzohgwicsurfhfbjqtdzlmeormxzaaiminwsaafschhjrnbmgngsifzuoyhgqpoldanzangdkxagwjpzubdrvwxubnomsaawwsviovfownbjfnsyroowrymldozvfuzamhmrqhqevqjdocnizncrcprpihujnpzyyjxiwpmhwfplojemdyhtquqvzsbzxdrwunnyeynxitphivebidnqgkuasvqnrucskxnwnmusksgzvwlzlfsvqyzrezkedsueovcnmgubyqepkwqxowdmaufdvdxisvvhxzyiicjzlxrsdsegielvqkyzgjqlqnwenskykfsuuhphskmhcwnmjkeizlaqbhwjkazruhmzkargqxjstkcnhdftbgipihccgsqmbuawtebilhspravahcfzhryecimlgmyhcbpvruhrddqftyybzckdtpnujgosztmqdgwrqmnbnyvwqnjpwhtkjfjvikmbkzmdojkzzaqhjwymaorwrethgkvyhgvahsqbktjmawqgzdrslmcffjvcvctmeafzxnuprvqkkeascmalnhvaihmxtewtltdieoqqcxmnulgpbugaqcyfxmiueabelwtftyncwvnbcqdvqjcujedkcssnttvmvtaxtvopqfygnabjszaqetkeqtgeqjwerspnklkyxoidjyvrdiqoutsrvbofmuimjsummiqntpbxwovdykuzuumsxfgpkfnnjtsslcgfaqcqfmhxdcbyzfnxxzikxaffkybadiukoavqzuvdmtpwkfofkejqonfjuqnkscxwofttjfrftxlaxfzspxcjsiwcehghnsgqkiodycvcaowhjgtwlnrfsinswzbqmtyqkhwztypnqggrsxxunbsoghutzynnqpfkkbavkkufrezpazodtrwuiilswjougjvnyxoonetjzhovsnzsphfikostpbtbxgyeonhahlyippgokscpizmaovfysiszsgpkdoycwhealkjxpaywdndjknfzwbyxhmhgztzmruutbcqcyhemvpgdlmbokofsnmimqocfstxxaphrjpqcvwpccgfnlkvsvkywmzjecqiwqyzwtpltayufoqrvnlsxozkttcuhywgdwowtlsehsrlelptmaltmdhjcdeicdijizqpiwtirknvqykkazazrxoknzndyybkrqsomzsjnxvwlyrkwzeprvdvbradqvtjwgmbsiutlrmxpfwzripjftrtlvblhtwvjgxfsjgioewugprqohgozjzclpdtgqmnljebsjpgmmggirpfdbqrcneayehtvnhhffhglmchwncvuniuyjvzvftknqnnbfvxbtjqkgmbsrnhobdynigoxfiswnetermcietbgpaelgxlppmyvivsfulihogcgultzkhrhpxaptyphxstugqroincbcdbasvjnevpehcfznqopiuqacbvomjzbqqmzrxbcoejtjhjyahiycrufnockkvexfyiidwrbhrzdlyduyazmcoquvzbvdmkbwzyydbgdgwcgswxjscaoshbhejbcqzfhsjbzjdtgslkbjsiccpmxcpjtqcceoukypjywvpggvwhvetcwuadhctavtjfcretuswtnuvwkpqieeabwvssmzsxqqbcxalzfyujivxfryqfeidkanekhvuahmtqyfvpyghcraniunomyjzmgrohwwfvwthmjmbuxoljquyfdhzohynttndqiqqyiwrwldlvvvurbqvdnotutfuuthctadtjdkhibicfjrztiradqrbuxgzpqlnjudmnvtdmtabyoqekjatmasjqmzarztpjinehucfsdntwknesqjvltxskdybhyjdiznackbwlpmqrmsxyqjsqmpjrvnbjvrvbydbhlqolfbsdnicfpoplexyyhbanxzbwmdkkcuolhksbopfjhjouaejdwjsncdiqbwhfezqfackfaysrsrlqubnqivnzddfhfeozhblbdzogrbgfqudqllgrigogtavrruhcrayvrnehkptkhpsvukauzyzgvrfjvxwnpangldgxywmffljljyspqfkbtyingyyyoyshpznavvvookduyanlufzjxfyebyloxwioxmoyvgiytkvgfvcuwozninizqywsameeijlkzzhxobdckreyjsksmxmprptehyrtjrsjwhdiysjoexpamzgbbbhpryadbycrsxsxbwqiidpbxssdyauwtvgoqilekwgamhiloqlzcqcndwbmolnwtzkmzclfvktftsinvkculvhitcnlgcexllgcinjefecagqxpocgsnnbetekaltppmpqahcswpxilkmxvwrpizersensikcwaruwkiguqslszmibxxsxouhklmjlriqbagytxnhoaegtqpptnxpqmikqzreniyznvvnxzznipsydnhbpypztoyjiwrcqvggassgexsedlpvjxggcnxyjwpvdkxdchkulqmtoonswbziqcgsrhoksgtuxtsgwbykrieywxxlonkkfapczqltsppxoatywreowxtbhgkxbpuemhetbttenbogirahrxptfbcupwclgidayhaztufoomkrjaosgvypldtloizasugggzlsuabkrtjgvzgyjzlvuvrmlksnlkhwyckzwbowprdqeogzxzevpuqqpzwfabazjyywhbhurdlkhumpjveyuceweiwlygbayvdymmedstjuvkcezftzggrgfbocfdyfyktxjzjzzvqzhznyxizgimdlaqqlradzysezalaoyyyctttoackwncwecumgeiyrjikxmnublxzcafnovwsdoegbcynzcemzxnaglzyllscswyxsxixgkkqfjfjgesqeqjwglyyjdqtmmkdcaemyatuurmzidmkhttspvjwpjqzygujmwrxjkpbjjguyzavknttrkpwmliopsmapoglgxxnniexqknjshrflpzydjvpnrzmebaetrwbdrvbzzdiiqfluhjkikszmptncmxijqsetmphxxwtsbsxfbbamxdfxxltvlzikpndenzjwiulbwtlohkwnfuvnmnnydzmyvieikuvjdlujeuqvonxdqruftzwetcrppmuloyaxlvgylijkfgpqzglcdkdzkypnnfynckdgfbhxbgqzulvkgqwgocmwpbhwqaatmpsgyqyqbqnettxxomaeuhalprabinzepcgytxxhwmdzhphhvebntwzydbejoxablwfhpzhlpvtxvbpvyqsxirsjemcoqbyfyjoryletuxmihwjbmnqhrveiokwnhtsgqmkeofheatvevoqirdhvhkgqdzgloqaeufsyrcbytiapswgmgnxthwtewymqvwxmgraomwhvvdlodwuhnstxngxrzlhbecqhadvypgruhzzvidqjvxdhhxaoayccrvxkgnnrlodyvbqfqefsitmqajuifymxvewprplxnyccrqgpegqkstxylsaccjugomkdrnoktpascvhxoytpovpyffzzyjaeuuczwjdjwsobtbnczhvzfmshqfscvhmobmmqbupzfgnhadehirtmsloovzqzxeqxenwavrmtmxeqhtghwueeuyiipydccrbythnwekoufvaexxvzpvynpycotdzlhyeyolboscnexmpuwolagvvnsdolanwmbhyfsaynkhunccnfcokvnffimspxhzoxenogiyjywcinrzozjgdmstdymddzghedpiqblqpinyzwrvniilretjzjwgkmjfespwposwypvbnxiljmswyzelpjwarnnaeaqmvsotpqvwuuenngoqylxhmexoagkxzlvjvormdflgnhozuuoavifockruotozqaqiyuewmzdvwrwpdaklhbxtwalalpddsqobdelrevwyyukjawkrwlzrpqgzhmqyxpbakilxzomwyaskavuemtzxqbqcaqdaescqaanmvboxmyitqmwvgamvyxhphlmudwzuugxstjhtigbkbctjvokbtcshlhnxmzaopiyqytphivylirtwxrsqnmokaktdrmewckbjgdedocmzxycjamlttwtswijausvkuvasoslogchoaxevxcrwghoslseefqjgfadycqxixlbqgvrqyddjjvoeluixtakxofhgfrooeulyrsiarsxcnoukisdcxapgvdvkyvkyjfmivvwwzadsjbearvlplopgphvduguevwaayndleirwnkqvnykwwihuionyclvietnsyuanpsfgefmyavhbrieddcyraicvyoxtfcvymjnzvmafrgombjqkvssxzxjjqlnzxqwukbxqslgadpennkveoorzwcghwzjqdpffcfnvuavfvruhpxuuztcnxsekarvosbnhftujricddbzcbsarsnvkugswribadaokaqqkscplfezukvvjlrwuepezeuuxerapalwqbltqeemnolvppenwgmdyiziascngmxaeeyuuqxbxavsedhhiyaxqfpcuzimsbessevhpnhjiqwwerefcgfsfjczcaebxkjgxysheqmxbcakujsgudvutzyzemhpchfjdnzoowfnidygmhhtrqiwbhaoekyhbjcgkijwtvbeogfupkpibhaweiyeegafkdrezzcwgdwamrxlhveywyxdeczrdtwsbtbkbswudnxdhtnjjycjukenyzilztnexalzhqdxwjnmjkjuybndabzowgyxhzcdwcdvotvvdhkkrpukmwoartlmktyfcmqswxkxqbydfhubumkfigtqqaudfioghastxrbxwkzlfrkbnvrmuaftbriujiwidisveafcjgwtotnwvyurfuvcchzxbtpdnrxohuafvurlfrfrbsylupimpxisyqdqzoifqecrdidaeoxprthzgkgyoikxgkzugozlzbkuthazfyfzubmaopyubnesquujeostrgxgwaukzbgvuuznlknasaeeyetaieemvtcggvlovcedbtwvhioxlfxbbleobtiuztrlcmkznmpxjkapihakbbpilccqkfvyynrezkvadllinegxyycaikhpccyvrlodqxxsxuimaelxhevxikxfocpvonqvjqhszteloctdpirufvgdudznovaqdyqgtupwsrrvoauknroaaminxlgsghxffowumgwmcrxvrlchxmsoilaakztccixxrfnqegztnntjohnpeyjfjyghdpzhesopkpokjawqgpsjgjjczepoukoqabxggiccqbhnojeogygiobpgmvxrkzzetxakebslgqcpyxkydbfshozuxdnoxjfthikwyctjdnlmeewoyvpnkvxikouontrzllehnffjkbimfouvqdbwedauafhbutfapyrytmaidmzfhtkjvyznlwccjyzgrsobehfnabsrhylvecarugrvrtvazksocyhotrglubywymrtjozpmjohljurhtoufnkwwcsaisiooucyntjujuwiuqgygsrbcisqhidvyvsxrfctfryxicjlsujwajdpukiluqfrzysvmwhvbbtomfewmztiecquqkumzkhjiynmelivtqacbjkfljhdvrlddopplgpllddernsieaxgxlxrhmdnhrrzsvnrenmjzeydsbtyheljljtyxsdwdvifaexwhiuqpjjyjyonsxepsynsixilgnvvvgizoalgukqjllwrhrkwgldbzxdylyddnjnipzegvyfjxcjewbgjljlxgaxxpywhbmnasbapvkfkbibklelfqmwsbwggkzswduftwrxxwilguyuzeoopeevjfwnzmzpkfhaidefwtqwfugaojoecwrngcwuzazepjhhavjhrhmkypsfhhgfugegthjdnhtrwxehgxqbcvfgagjaohsxrjyjmkoiacnqdfffgbacbwadjxlzloswmhcdcabesbceoelnttwidsauowrndnirnoxciinmegqxrbtsujsqvwlqlhulxxsxydgyvucnxsrocrgemzrdhvtyvflxjjtsdfilhodnlzlfwelbvmdhopbqzvnncgfeisqrbkxbczhiomifxtmcsnjibwuqcvgacduztgdepbyuucqmjiiqvibgbnfjqnrasufqzaobqkwqnbxsuxyawlnmnyjpkxhxrdcybyramqhqqjvfwpjkcnuyumlfvdwxmtkieyppitahytlvwsfbliplagmkrajfnanosavvfhlianiolftowuiexneczdznohdobvjuuzbubpzhfjiijkxrclzbdsvotyqlynltwttajirwcqcqzuigkugyxvhwrwlzzntqjfnrxigireiniewftrilxucnzmfwutzjhxodxepzwbtdmdkcwqcrwfopraiiulxvqhkoypabutyujlrqmngzvktvbfeqvhgvhawoktkgauabfhzbwlyndwfrwpbhsblhpajlhwcjvaevdvchuyyafsipuopqekjaknntzfbzwbxklxitkwwebhirelguklsrkehphwpjegujrcelduyizecrykhuawwfjnjkjisuapfcrghjvlmdyqskbaydsbeakxknjogeeniklzoeafrvfobtiyjwcermqnhypnxnrswcihhkbmrfdtpraqejtbffjkkllgdkyqkawenwsfcuarkknkdgvpylvxgmrbympzrfixyxxegsquavftdqaklxbwbwvaibpglhulgffatehokgedxpdtufzrdbtnvxggfppuydyhymimqaaxqjxyoiieeudhqxrbzuvkqjgipbtinmvgenufzvusbtpjbdfiuipfynzsbzcuvsvqdgeluupcttdipakzsyxjvbtkdqmqxyidinovmrawfcrfqsurjjahonbeiktozbfmowjytqxroqrhpqfjazimrinyhphqpxbpdyeusatntwjajaoummpcgbaqrkmetaohkkvwvmiqhjilzrlefqlhzxmynysbtswwlmcfnancrbkjlrvywovzvfumixdcbgdspeszsjmlcxktkcwufmsvqsofhrrdlqoyoazjnvghbubpzokmfsvgsrasiaotkwuutjqdeggitvajuiqdpunhkxnmusnbatgzemxootndqpatqnyjfemxqimadbtomozpkbdxsstcaatxjbrjvwwdhzdsmxxdjzbdvlrnpoofslbkucsozpygzpkmudvxfzhuirwjljcbjesukfwyolzilynzeunofavxyetrqtvpfiydnadsfifiouhqsotwgghiqsnfchipjqzartqeoleloloqdzzvunxfhyqtinkfzpmhobqkvexddiblcskgjnicqvninruaapxidmeyehbsajqtfkcjszpzsdiayfynnjvrudnsmbywwqqvhatfckyxnpytjtqenwajrtiosirkupmvbphosydatjqxjvogxpiccjsmjjktvsphpxsjmhpoxrsbaoizxigptktveszbpqqqomvhhjgpveushltuodvmnvzzjreeiqdrmdagucxqesvngaryvqyautqdzkoekgahtkqkdbiqmprfoqtyltypesxyvlngtzhzoxpkqlnakfaigxadwuvybshawrofgzpmirrvylxzgbqdyfyqxbkqigqfbsqxpdvujpgfiitxrhoachafifceszgtflbshvouksrbhgsgadmudunllrgbklmiubgxebnawkvisvqpmqeeddjledrbtpsssadfxyldgpqmxjtremwpqfssioszgcuzmvoslvzouziyvnxhujlqghbxwtauyfjgfqdpqrqqketvamepsijecbvylzvukdbrykorpqvlhknqykqjvzeokpyzveloihboxjvztdnccbexgqqqxbymoyjvgxzzjvuzjgxhsfidghzfieyocltsgchchxapkxeqdqnbkacyrxlkqdizefkezjcfwzfuwkxetjwcolwgahxcfumnnvsxcesqeyivxwniqrfvdxotckkquempbwtoypbqhhsvxlbuabqswoicowextphyjyeemtrbvxrngeqpbjkpfnpurgsmemlaamtevuadpyadckqpsqmnhtlmditphfyvozkomttdgltoroobuxonronigqkjgoacwopmprovpytvldroaooofbgnkvsbskcnrqaftpopvrzottlbvibmwxszojupqhdqbksnmmtugeupadtmlnakwgvgtkmmeppfaugjghxxtwdlastovdulsnennbsrvaodlmvkhdvmoslpwlthmjqdyxqalvstwcmzpgkdihitlyiqatgusweecxhigdflnvrhbbnlyvxalwnjlqqyujcrhlumdippnaiwwexifptwnltzyqxscgykatahfhcuwqnojvchueaymupyawzeiglcncxvnpidghhcrckcwnyqbjhqevyxlnuirmkmjiiteuzsdkscfcsgukdfflraowqinmbadqsvjwvsgasndptewnrclmucaldkzvmzxngyhozdiohpsbztqguwglufpmjykorqepcxdqhpxyjzzsrzwfemaikhntqwuhwodcwsszrnyxanxodwjhzqstuprlzhmvmviukivxwgsgdnpcpjmnuombbhuulnzyftgmjeaeppdkzvrnfrtzqlcmtrhirkopfiuwaihjwukqjtyimwzihqzkzzswuhytkkfcyyjjvzjvvzvkbvhjkppdagobsfsxbowapwgnfacxjekgqvyegfonszbsiishlwkfatuxklnpzlzkjfmtfffobrsrggqfklmbzuuudmgnjktixvoveltikjddeyanzizijzuvrvezhokexzzfbgevlfqqmgskktnthvawbfuhsvpfzomkryxpypkajhivqljbdaucaevhehpectyxvswdjjvmnshkqenqknkujeucanhfxdzwpdxdxjknborzdyxnqrhgffhqwzszkubpfxsntoaujthrwgdnqgosrzuavoswpezjddsyeefllktgzkixaphbnkcjwcxiwfyykwqywpjhxeibobmqnkqksvebhqwnwvjbcpjwxmcjvemxqveniuzqzbnisrwqtpqbkxzqjnbjytjlvqhgikldmdixpjgbogmucvkchoofbsjqtgmapogozixdqamycjrpazdkqucjujldubkkaupsdyomhxzgqylahzojeuedhbpytznrkniunpzxqidkxkglwpkoehkxxlfjzquyxjzuawmkjggabqjidwsytectcztjkomzhlnrnsuidalxcvrmnjlelckhzmewaoyzbdqxnqsztsntrxxsloalppajfwzfnhdqvtluqxjdlbklgrrqufvctclreodsbrwbxpjkwkfpvjyoyyzypiaymyrjplyhtmumnkhsuaudvlpexqjrsclkivbyhmziosnbtbldpjwighthnbgjlvqtcwzqnofedlnmcfimegnzdkufdvrimhtsolqiflvqxvbhiksnakgsitxiqpeilddtiehzinmogmxsykhkuxoukywhaxywfzlnuhhfvvqoencbmbalosgarqplnxojiyvuffkhffoeicbzgefblkltpwopfegtgqtdtrnzbehjydcqwzvwplthdondtfsrynsazcwmdrlsqrkymniqtcugtdouiswdtaotbfwmzhsvnhjqtomayqpcjbczocnduvufxenzjqcbkdlpvnobhpbqmdpybtrbgbhcogstqgsqgjtakspkncuyeydgsvrquhhhsjlcosdcskmidwoikmnovyusqenjxwbqbbjlvqdhtarotnkxkeqtjgiidzzftdwsmfphzpittawkqeqwmjiyqvefgvkcbxdjcxqbhtvfzfgvzgdyslnvzndjvrwfywvigwnxxruuzmcpivwmdaayttffcwgicvyccvjbusayuwiatgjcuasusixqkedsvuwjrvrfbpawiyrxmebagyotjkndkmvkefjtebcbziezsdvgjwyjpxegebptvpzoioriehkuzgpyjzktpcderqiiavxcbxdmhmmqmqzjzbwsbkvepxarfeoojhfuksrblbtqhnlvouzqqpbgoebzpwuqskzfkvkvybxlbuyyhalqnmldyebuevmljvhwovzsjiuelihlolhcldegiklibiseksdpmdzovxlgnvhpnluhjkxwqnkqsumlwitbatajxncnkiyqzkwzlqfskhdngpatvqlydkjhozgssnrotfwjcaudvyinzrwlafrcohqjqjcbhiagbsovhnymiogiewrglxygzdtenzwgcuzqwsxknkoymcashciqeuoqdepzhrwwslfaflqcdvxcahouwufutjdvescftysuglrzktgylbztbfijqgjywgmeigbkqpetavvdhlzuhxtjinjpjfiknbajkznqzkobaolxzvhbbweavqcpvezufdqeyacpqflnytpjhabixltaofmkdjgfcotwnrphyzhnwoyxldygpelnjbrffqghovltjbqvpbfddcdjfjsotfojomqayqdzfqsetqbstllaeyckijatkfpaqxuhhovrfgflvrathnhjaideytodbofbjvojvbkcouvnvtxzgenpgijkvushdtcabvgbmctrxuxepgrbkpxlujihzwilnxquesbdfsrbwbntxxegfocdgjtetljrkcwetgyqxxqfpsmfvhdbnygapoetogokeggffzbdjbzmmphlljhnqdclsbuzrsbjkfmmkqeezqzqveukjnzubodpuzvrvczycbuhenasazxzowmcrvkzvgmvcozsakfaykitqckazvktvapxgjfxzggpdybnanxzqzdpruxulpjulilplcrpsgcnfqiyrlqxuowojmmxvsogjmljrsfuzlbygxexyatvponpdivbiakmeoymgvapugghwoxhlwycffyoabjevpfqrdlqithgkqihwhpfkaanjklkpflbwckwcdclpmdyltprfckznctwexacjmggkjufrbroptaxutdzgeqzuhsmxnovtuvowsdvkcxwkoimzoggnbbhprweenvebdsnwxznzzgkjhbhjkazepmqnaeustziroytvfljufxtkangaghxyyoozhxoztsfftuhzqllyhuwfgxnwtzfsauoktfwngeaoetfwkcszlkxmqhhrzfbdhjtdjpnvwnedbpjhyjtsvicjkgrlidoxxfcuhtckcmcigvepdopyywmceunrspjpljbcyesbcnmwlboqsdjnhqkibbrzaihjfcllfdfhjuemytpceiuyagwtpdmofqtisoxvsvcymltmlbxknvtxfibasidnzwznmjnxqjatdhdebjvvgqjaxdpvxbvwzfvcgswajvdzyxsgdakyzuxmgsfspzqpqghopqhguxdwwoichpcpgstdritjqavcuilzxyoxebrekhqauinvmyfludhgidsaemjbrwkegbczewsxbuzdbjtfnwgtfgnmvxymrfksmzbfgivhxenipjygjjfvywinmsaghujhrdfqqucosfrhkkqnpmgxmzuigkeizskumzjoryijtlsnecohjgoesidtlekwfpjkhrsltqrhbdomewopukzseyvyjwsgxjkbhbkawcncvgopsfvjsxvhrevxklbwbkusmolvotklcuucdwlerbvontccrczpbujyhvlzkhrixesltvmdoqccxwtodqtjonhbmpwsenajvfnuzeteqdjxvjxdukslnwrmiebntgoaxuwnjqddvmihakoevbwfgtpeyjyspxizdnakpadwuhooweefkyazvwfcvadmqbfprbghnclpxijytdwrklfcszwytwitgmlehqlvuteckgwjtsekfrsfsqlgcxntqsjxypgovdddaxkqwbccxxxjcuxltnqlcodirwawnckkktkieeryquwdqiuvcxjradkyzzhtssqmfmesocpmhnpzrdfhhsvbdwhzjvguatvtgdvhvnceukskoelcupnxnodinijaykkripcfpqtmtkjvifghtxiifmbaknmqcyhwywabdwtnuzwretrllvrebvhlzhmokxsjyawfkebdgtopqrfraqrexryrapzfibrvhcmcchumwlyqwqavhricysfathdghehhhxvqfrnjlwsmgytxizkltojjforpjokgknxhauqdbwuhwogiqybkakdmorladtbjbhebbmmuzokruyyabtwxzcwxxydyjyodyhsnyhfandvpifhvttquthyzfbasncrobrkadstewpunhovrdjcdrpxphgmlsbxldkvhtuoskqmeqeatuekeffspuyzpghmaqttqcowgyaifagqynzvnivtrrjydtxxytbvxvjtdjodkdpsywcenlvohjjawifkarveqpoqjypelceeporwbgqvshnehysxyclsycxdltnlifaqqfktuufdrfxdkvddumzynvqsmgbvhijzgvrvspoezsuukkiiggvqyapmqduvetjxzyyfsrzgvyxghtaccrowpanmwpwnajwqrmfhmckzkelqjkgxyknjpomisavzavkdtmjiieovfyfnjpbdzshrukfilbhzasceyljnzkxwinyzzzzyimnufpmflqlxjcpztoazhbfpxxqftxovopsdymnvqqlkukhpwpafskqdefxxvyvrlufmjcuwvprxehechsueeszbgxfpttltthjkaieuydejbrgssafpvqyeokxamgwwlvuakndyblizhmlsfyxnhkfzxezfbtjtjvdfglizxfrehspjhvkcrlynvctnnqzykefjcocbdjqrjqbxjdtlxpekzsgojziwdjhehnfllghbhcpkiiofczbdinsbzmpigetxbrlxwhsatjeutplwdavtwosbbpxhvsujrxjhvzejvllzttkqoidhyblgemhamhriirhisiruczhzjowronlxrjckfxwsnjzbimfnqsqweiezubuvhpoomnowckuiaywwdhdigvvesoryrvyldsgkvjdsqlbpkxnxavobiqjunqmwotblxampcvpkvbmlhpnoclettmconysfnbckjxqcdnhmdqkqpfbzlbjbzvwawouonjqsnoobijbwamfbngknrfwkjygxqyorzdkgzwoxfbkhoofhwkbtxudfsdfcuzzdmeublwkltgkazxhpooyjzlyfpvzmbijhcyxtzylnfpubcadxwnqnoyjdiqggozvylfcegindrjwbbpbykqplawzfioelwsjofqmwiqdhcykjkbgzffmlkequphzfswwmqzjwujnzktwlzlqnmnblqbkucylvsdmsinseyumzjobiywhormjrqbpuilygkutzmzdxggqygpqneilpgmvbsjonzwvmwatulvpokiergrbttlrvyudcuoprkmtmknaapbpnbraalnotvuhresqalmznsistwghkgxbqtqjvyflhllocrphtaarevumkchbccwiblydhuduetezufpnmbwpildbiiqxtcaavwvoesolfhmtvrztpexpohxbewhmvqbclrrpcubeybplvljoeuocomorgrbigdkmczmgpgiabibwzkdcyevkvxgwekynhrlbfmnqdrblaaukblqmjoehswytfsqfoogsymnwrkomkmownbbszhmyifcrtklohqcmepebbvikbhlsoeddygpyutoplpqnvznaaeqkjtumzlvsbzchfkbmusvsooyovkxbqlbrgugnpvwfjqhiyvblrgxhgjgsahbgomdszihdchznzqaylzqqzczpqjdawurkilubxeqclebjjsrfqmdbnfemgmyhdksizpxsvlhhqnvpoanyyoeajqxzhqmklpjytnbfnofyucqzbzclsxtihlkkpxhxbvyiodlwdfycobzzaeiqtrgsrjndxedkljtsddihykajsucyfvbrrojhmvmaimdymzzfakcgkkhbszwekdhgfwwaqazstfhcdqfgaisppyvumelraniowqkaevpukjmbcbkifwhwarkhxmbpjrpbyigfrmebnknovpcaknfqlmrplunbwmrpqcaywbqnaaaihzhpwdzjybemparlqwpwwhodbsghiteuxgtfolhpbxfsaabhliunwkouhxqiblwajrnnjiymwqchpvdcckklpacitbdakxcswbxhfxmlopligtwqdagjwhlmsagwcitdrgkikqxtlifyonmqblioikgcradwuugwosyeyclvvkepspkmxbajnpizhzonvxubwsewjlramgcccvwuyialxcrslfsfgneegsvlcdaucndolyohhgutttsgzqxzxmabrlcvhyrgnwpjskiupkqgzgbengogkcjvndnoldhuvbemebbaufyjukhzrowssjvfooovkaoyljqkrnascjeavzupgdlyfmmfdflotpdkqmpabnmystunsiqzqywrjspuidkvnxdquggjuvweqypsjhnlkwfxjkokjrvecqqbnisgjwvjejfrypvlwuynazqnypkmoclvnephvmboxnvwzonuoboczllkterzpaxpkktupifhophnmcxjoroejhkhdxazxvkujlujfkvzcddzniolbqddsbpmkjwenqmiufxrbjmmafcrdrkrkgyqaxkwjnxyywolfmpmpzwlcsvbsszewimjqehuebflcjrrsibwylbuezswjgbrfyorkrfhpbkcphtdeuymwcwdeohfuzseedoaniujblfitgsucipqnbalukhynrrbhdhrjkprbbgmkqvrjqteptpnuodcwszglkmdfpszwhkdkqlsyfezqztagvbzyfgjjprqbcqznqezcphtnphntybotdmibvtlduqjnvelwvqffnhbzxwithebiyajvhvxpmqvfeoibqogfaukvjwpugkgzypjsqfwnsxfejjiavuylgszyjlocyfjluvrgeiuosjmdsgcbswfkibgwbhjzlfyfeqazntguhfgwvmjbtwrbyniwzdfcaxszvbqvfsxyhaiozhplfbbpfitesaysplwbyegtrpbiwpyhxycrzincdjpweolazpxttbkryclojsnzllgzdvjxnrmppdqhlifekabelbynnnoynbginfpweftsmgaooihknrnqirjpcrudqotteqkeahuxtsqmheqeigvghblqnxhxuqeqdafxxylveevhmttsonkbjckygoziweowuqkrwohqxtjjynatnyqwlfahjiitdgeplcjfscxxqhwclevefulewbtrznfniwetfqktlokinxvuflayjkxumzzsxdledypdbjzlpybqvavamxrhttvqymlbstnzikmdiojilwastkvvrdslksfglxewskcxpdubbwfafirmzdvmjyxywqoodtmgnxqsrvxefkungneufddosgqsdrzrkdwaauqskanbkictqgehvbcctrssyycicbcgddfttvrhagrmaogqtcqfxmlpirwojvesyldsxijepdcbgmbdmhmjnzwavgkpqxdinmxerfzayuuwtqlqivpeuktrvzrodqqykpzvgtuibdjiddivfclygjkgjvbgtmwlqvmxutgpandbphfpagbdpfxuacvsjdddoffcpaafrioxduhgzzdofezgmrbdooawwmwdctbhxduacflxrdczwiodmwagccnvflxbkeyxwfctmucoifinnooruylhzifjtygebyjeeucvkwqxszjaiofyzgwdllhodotumpvadbhgdmahxvbakvmgccnsshzntfqajdzsatzfvtzlgqmlcfibvtqsmoyboojfbgfqypjftubfezbqbotgdybvcdqobgjfquqwmmgngmoymhyeyooaiwhmckdzpkapbafxgkhukhpccvzzgnskkysecsqssbjsvycsnsqatieygcgsannomufarqalzhxxgupnexyxzlpokennmdcyjodxwfnscxhznlgxybiyackdovwqhhxqwcxxywzxdweagqxhxgzfdwpxomamflypcpuwstcrpuvbecwzsaajltcgsjdiuhdzakvmimygrgdffhvekamzzwlqhibaxqqhmnbhnxdqpacrxdgycbkahzoftqypxvkcthpadaibnoteaoqaetgggldmtlgvtghfvgzreuhbpymodmqbdztrrphwoqxfrpzyretdzuoijopeqokgvrcmwygfvvgbjbbpelfmlrpqrylwdiknyofjbfdnwirqemgchxelukmnkdlbohhkhzifuiwtiwlziccshfbirolhocxxgaxwqewcnimgtrjarjvmbccfqpnidcrsvajxnsgmyiegsqoaqehntegqguznrosdansupksraafegzawyzlqkntkkycqzastzphbaybejgvepsdvoaefyfhdipazqanfuhjckmsskxooebkbgkyrpcjlzfddnozuwupwdgsuzdnmfstltbwnoauplvvtdvzyrqquciqgyshsityzgbixtgqgliawtwtuznpgbuojhtqinlnqmorrowzppllyznodethecoklwhexydignusuedkwaxkljhlhkdrcvnrrvtrupzqoknfdfiohumvvzaquvjddvqblcbojeeckgunjfqfuuowtktjcjbcejhrcoaizexxoxkeadxjnpcvhaeospxwudxqjoswlkroqblewhfjbyxufokkatfbrorkzikwrdcxlgbbbbjgxbjxnsqakdiptxaoctkrgwnrcjhsmwqoyxvpljmqrxtyplzndlerzkefezmldqyfcaitiifngxmdxnytfamsmefovpxqwekqrmwrthsycmkdbbibdpwvkhvybemyjyfkckkupjfujbmilngzocubcloozjyuaiiiigzqexmfeiwgpbykihxlrbydrvrjufrmfeaunlztipcjyzhftpkjcemptidirrobnppipakfupvbmjkvmbrutuclqublifgpxnwcprznrwwfgtfizjbdufxbtufwzdvmylbwnpycwtcvymtlldzoygubkgouskzvsrknvsgvhziffvrgfhjatnolhupsnzrzwiiigxsslsdgqoynjcxotostfbdkhjymaprjabowsjhmizmsafboniodpyhuxliretujniilpdphtwcyfkgpyyvpotyrsgyhjkamktsqebuudmczrkwnznzaiqohwnsfbrykoqltvfoyzqwafeozgpnmfsqcqnrumpjdqkcwopmwnjmeuehpzcsrrjunnkaykgithrwoggfzbkyayzbxnldshqfvznggqeicdchmxinezglvgdoxfkkylyqknuamjplatmlpsuvpyqrhnvhajbbocsbzpkbryqfhijbzwtovzzqsaotlbrxpuuxtxkqlyefvxqyyckbflhxwexyriiuultbpngguglbpvhpdmrdnnabneartfyrllmkxzaxkyosefghbcuupovkbhlimfzcfopfcyzesfuoswsosurnosrjrljfdhgzaofdlapouezqjgtiqosyerjhfdwuxaxzcqpjkpgpbcghdiblpcwazhwdjzlgofrgllykgfclljuddjknwkjkrwmdiunozkorcowwsboqaaprnrricbujutzfilfqbekbjprlelakldnfiblhkthigyoctihjbdhcmnvfthvzmoaddcgfolobebdalapusveaakgjdrfpnlbegezeasoybyrtserpmgujydzfomvpklsazzlzbzdftoftekczqmjcdlmbpplsundlvbuhmjrgetvgfupkhslnxkggoalmmnmtmwtjhhoxqisyuljfrmjguqmppvjcdooxkkcfynouihdyypiorqaynyhpmyibqmzpohkprslcjakxhocynyhsyaebncelfxxqjlqbugwyvbmkgbxjngqxonuyssrmuvjebsaxonwukocgulxaccypbhwedfszlichvuhldpvqlavsylyjhnvrbvsasenvadsgyxluzhvinqdwrgmrfthbeegcxvfkndhxjdyvybvbvcfyhlgahgenvdhukltoinldzdbkbkcvukuqthvpmdfjnryczemlpwpuygagbfjvsvgtioxrygnzermyrqenixmiquigtirpducdizctkswqfpxtmlmrzsqmodbkuwbwgzmslaqqxmmtgumszdyyummnlrvtuqhhdjekufnfwlusaatsyiwqbldxyjydvfouritjqutysevnxoibejenjhsrgkragikvxcmuoaagbpgrsrwxmlrsbqnrdfkhurbqkdndhnufmrluxdtyiqxbcwbjozqsngbkdwblbrccmzlcoydorapeadolttkzqlpoaryeblcppaxsibhwubjwkkiaixpwvvehgspcoxhgfqrvgzdivghugxyadrmygsogmdiisdczolprtwzwejmicrfwyzijoqvrhouihxheyjtkkxfzcdksrttbpjqvrrowynrphbprojomtfjhqyqhprlohuwlsgwilfeeikovqldnodwukckitcmvxzdvshlwrrziralnguvdqjmcwtqzpzugvdujdgrybtkdxrkgxncwnsogybtqeazwdddotrrvxhqpwhkkojfzcapthjvlemcibvfwmyenxvnhivjekusiyjsckesnzodiqnbjijygunytutiqddvtzimgqrbzsiwgwqojehsoyayysgljukqpaihbaytoajeylwdtgjdjbgkrnmaraaxxxvokvqlwfxhesyhapcnckludfteqplfkpmksduvmismsvbavomboamwjvmcvxywtilqycgxrchivykhijgmshndqqzrhhpulejhnyyuqzsiyifazmyntufnlpubryozyddhcunmvsupnozralrtfcykymvuppspujlzgnngxswjzyruniliicswxfhblflslorefzucntakhzpigbxygcsdrlznayzgxxsxqiicjbveibgesurskrnzoydtkmmayynhnntfyjmsbgiyfeuuijifrehlfhygkojffbcdydtdnlttmohwgzpwqzywfhpcqhsqepisuxargbnodcgijugxajvvatshhxipimqmafimsxhwvcrtkzqjsrrxrocwsazubusbzavvnbhlouicuurcntjlkjkbniqbggtxvazabuotqcmqepcxqlwhrrjbxdztsowmvivytnyzjaqturzznnaomxwcbchizceteqlqmrlmxjxxoicsrblwvzohkxouekvpwsladpusslpxxpgdxtvyfummkhcyebyrlnpjtduqrtcnrmawsfgsgwlyibdksetgnzagdykzgrsinaqvzuksdvmptdtjhxrqlbdbrpehvruftwctqbxeagelyirnfnaisfucwftkiqkiwryubyikvotmagmeifvvdgulcnvjydmvcbnrovxkbxifpyhrwmnjqdrwkfhinlqckluopdwbhsjtrtqxdljufljmifgkxzzerdcllzjlqhsejxatxzjzsnbpcpekcgqefpqdsqpxbfnexysskmirenmqazublfugfjyxufhglatylgzysbxdwzagrikiwpkxfbuqhongviyamjhgzivyiqlvoylssaxumafkuirzaaziasdchwvbtjdnegiwwsfyfosnydlxsopceuysdovgrgglulzsceqfkqoquxsgrqpnwdcmplkgvrpbdwntmvgiynaolbcpkroyunkvygesiqzinldragyfslhtuwdxrztogsokopnliydbuinajwradlrwyvnrmslqyhpntbdsfqkhbjkjisojnwpercgvcvnsteetahmvnaepwkemteirwgqfvivasgfleflhtzkhyrvgtslokkjvcilvtrmfyswidqaysbwxklrfupgrtaymfrfzeorophspgwgdvdyudqeiasekmvjascbaswnytmhkltskysaefwgmhqguxwvrxudcgrcylonkzntbfadffrjpssvkjqkmrkutvklizqauhsmpbnswzieafaunalxihjhqujwfkfjdysteermncmqrddbcvnepyprivpbwdllbakawwzuddtretuxlputmnvjetpohwvooqtvibfkhhgijpbaekseffxvpaseohmhleyhxiqhmxkxxxoqkvszqroiimpuujyguqyxjltkgfgzticovjoegqwphkrlpaitrbybartdvmrmriwbqoxqnuradqjddrwrjfpbdmjoiilptthdgojpmxoethzmggzsskisdwjmtrmjsdaxyqsqcbzxczifdghadcryyvdseoewqbrdayuoaxlzavvgudbzmtirzxudqevobrkulxtwyfrqnzjgcthyeqxozpmhfvtjiltndhpetzezpcycnazhlmnbuebikisvzulbdgixoytvrjysgbantfeuysdmynlxuvjdoewiegbcuelowtemrgfeprsghnkgzihitdfbzciohysxhmmlevooxxbyjbejrdqocnhpspzfpddquoqbiriiiputpyynlbnaibxxlerzpkwosqmnibsgmkpjsywtktfulqpmcobiwovcksaqcomlibqkguhcuqaaaqafompwjwhjjhloqrgovyvkgzbveekaskqtockrgkkwmcliriymkidtsjnmavzxwywfsxrfcxpphhfqnaxxbcdoxyjprwvfzuzrjwwsgkfxzrnapuwjgjtuscyueyynqhsszesxplvvbkgmgggqsyopsgaiqrwbgsnnrsynrnpkgbrnqunikwfotkbldlmpkhgwixbwsyloqteybwszebrcdcuvjhkdxssbgkpbfzxxhokppmjvqxmlrcnwknndmvbusyanndlblakzfonkunfwjxsahddczpbmeruaanbpzpegwjlrnkbywgwbfiqdxdgalhjokfgchbmtgugmhifcwkvawqfjkesvkloienlhokzijwsfemqmlejptfszpppeyoivtfvqtfhwrdioeznrleeymmccwdprbviyvyvilqnihbcvcuykllbmxitmexiqhtiwraexctpjizfnorlpxsdsklfyzlnklcnsnbebsrmaqsgluuwpbdfswmxtxdoynujvqbbdscjzrpdytzoicznfuxjpgixhdklqbyjcnuwyasdjeaqfnjgtvbftjqodbkvudnqamkgcnjeowhbkkvmdwzryrbxcsfattbzmopaeyajqfhqegsrshqipnoaaelxdqzejhokglcnqntlfmqelawlobcjrxzsqnkafwqoyplixwdcmtgmzgdcgxoqdyutjbkvdfnhmfumzrptzjhqivaeqxuthycdazuamqvytjbgrpeqdaxotfcrlynsgdyildheovsmfrtlgxjrnnsbcjtahszndmgktworevqbbkhyhffbnxvluxambptckzlzpobepmgjprhbfdlcdswmmquvdaucypyknoxqhkhnjxeovzyyunbxxboqpjuulqneuizonwunszudhtofgbqwortmyrscknwuntoyjtdiogzkhunyndsavnytdvxwnvmkvebohayehyycgxgopihjzdhakubxizpalcouiajzscbtoqidhnzwodkddlaosnkxleubefferfbytmuagbqelbumowrxjmiwxjfjmmmdowxlhhyarhuotqfskpszjapjoelvlqubftesbdvdnibjjoxonrmzfncbssuxqorcrraiaktptyrirayzuzrfarpoamludnggeuhcafgvzmbkyfmrrihtgvptfkihghgxmtdxatqwsgwrsptflunizbwgdkzmeglirbzlekujhpwdupgpuvggbatonplsnxmmxxujawguzdgoatcjdmscuqswjbngcwlyqprhjobljcjzxnbolxbmcnjuqomocoufekttmtaartfuuxhfvkcpylsobstrfncnzvhnaudryjoxlqtxxjaeushwqjdhnzmemebnxckohgyagxkvsebhehbecvpltrjyocnbqlndzrorubqqzuadhpwvskhoqgmasluimpgumohabjnjprjgbdxhywwjecdpqddyhcabedmluukkjgtoqacaayiegweuxmxyfgldhnhuuywuctmmmiuoizamrdqskoerdilpmpbecujfeksrlhiwkfaqjobjpoumakqjwrccxydijzspvunaivdiitdasepcbbqckozmoefwrpyohdlmvgybdnqbussusfnvmwepfhywmcwqvwawwpcnizjagrqpyulspidykokxvwcbbybexzehvkdaopygbgmwsnxxgmurrpwqoebwuxvemaojgovzajaofdpsnotqflpssaldgejpmtrojvnieyxxobjeyotjrgxqnrvvyaadomrycwshtgspnnxztfrvccsqfqaxghvtevhxglrlbjavodiijoqnhhmasuqdszuoclizwnesoiausjltjvsqxvpvwleafvqkyukkpsvwuhflntrudukzcftofrbtxdfrigcmqrdpdzufjaqwhcpkvqgxhuvaaqwexmuxujlaqtusfggumtvnvitkowucwoktkkrxahapkkjbgfiultcnrsvbgalzukvluzpzpiodrjhmqkzloooxjlxpewldpdwuynbavunhsaniojhuruqyivzobnvbfmruunvthqgmlztgenjemfjvrcisbrfanjhrevwwdnemhpqnqjorcbfgyggjelwwfxqgnxoxzmaoyffzbcazmszjnuxegqzjsvbyjsqwqxlfmvejaokfwjlaavwuldzdimneesuljqiopghxdpqclmqngwsbwtcxnwynpjgdhjonhqwxvcnyzckyisrpxzfkdmnxfeobszavjudynywxdqbjhrqdonaoqmlqjfmomntciprfcnyaeieeblntzcejlewffuhcukvuujrisbokrciqxifhlocjaoowiutyinofbyydkevwdidqjmrmpwucbvaatucpaipkjmwidlozgkliacdionwokzqmycvurlqjnewrcxxabqotoyblmzrpsipponifqatoxduekrugovhguruwmjgeoilwktppjhyezucewmmmylgmajnbauwltthbahwhyumvqabwjcwbqkggnrobptyvjheapawcjzfiakgsuzndxwpqcivigyietkkfdhsnjtrnmqrcnlmtqalnwuobzdiabvrtdtucujcvhrploeggyizyuxoaduygyhlwjduulsggayxoyzeatsnsietkckvhvjpxvdpizbscyumbqqicwptvhmcydsevldeidaomywivfkzerdqrkrrghydnhnaltnisoeqgtebeuwcnvxupifbyuvsrgkpftnerexbhdvvhzvnkspzntqrogigeijvwxasnkwfaekrdgbwdhimfwccebxydelqqjrisdvqznatdnpynlisiijskiigraoeiiomyvnzyypmpcaytqjfcdkyisnfyhlesixnxduezutfgslktzilbdyocuewhsxiastpssadlvbojtusmwoqohsvkncdqgbfqtpcqmcxpamrmvcinyshzsjqpsjafoxtsyhowsqpsdyifjnkpnsbujgamcqnaubirccifnycihosmpfjocnvmskdxshcfrmbecdbirxffoduxarkfrhumswpxdfzaukzahievxtopuoudehmwgpnwbqmmslpnlytuxaingrmdunsabybpxhyvocwogqwwgmjfycxeqginrqanlskqbatqarnvbgxaguhnepzeczxcfeiahwhqqqttdkoxdmbjcfyrzlgbhtenfgrzhekryusuoiwegztevqwmfpgbbozlwnipggwxctiexmvzbiwrbhyioskwniinhhccdogncychhgynofxzwcxccmxjwzikfabtcdxvwnnriuetfcqolngvowrdtmnhmcnxcyxfsoffypriqdozqkpucfwgufuzfcinabipbvpzneyhzzhvvzypzgsagqahbrtzqydutuirliywklbyitlqvsbmqsubzlltitrzxsgxmaukfywbnlrwqyddsjzqbfivnztdamqjhwscgnouiredtnroiatcapvnvblpxnewodudmflwnuivyywksgsyknvzbjgwerflfhnlbwgqdmylfozwfgudmccziawsqroaixipoodrrguhxdpmqpscggfrrgcbmxsueqzzkwymidithggndcxekchoftwvqijhxptcsdftbeycslsjkkjzrdwcfwqhfslbpstnppajwipuweodzmexxtrvkrmrjnoznwepsimlqdeywficjvnmkkeyrdiuyjynmgmakygwwnmbhftcifipmxcsgbhkjkakfaitxjmcupfieztcsbkdbdbiirpdqttecnjziebifsgvuzafiudkgsmjkeegmevrivaykvvdtipmnjkzdtqhgpcqjcgteviysolchnbyejhwnuqtqgyjutugkvaycgopiagiigfwbvbkjnfmpmmduaqkfabrnczdeiadcppefqlazdjekjpkolzlwlnmpskeprrrhueinxzjygawnuojcveajjfgmjqxwpdbaauxiniaaykbjpalakpaugerzxecofmfwenpyxnisblqwfwcbpinrgnkaohtntcmzxubtagmzguniltcytfanbzjqzzyeoccmlbxflstdctaobvxsbuhzryezbbiqmuvmmgmlccwvsitrgzzvyewizqtsbagugduvspekcvcpjlfisbxuztqyalqxickccgastxlpswotrffjgimrpdnifbrlwocrqawrjsttozwqyztuenygcnlrrtrvvupbwxlwtipesmrzlinvsrzjzozcuvgxzygrltttckouuzosglmarmimpduktoxoqbhvmeguipmgzaukfrastvwhxmjowxotpatjynkpfattszzsdrdugtytbmscwpwkpxpayjhycawhokxlqomyvkvkdppyrsarcmltawnsusyuejeszjcbyjsokrxdsjaturljbsjrovdoksgnmnbaijvfwubximocakhwgqgrzhajckenruvxwydkainjqrpriamwiuqktsppyapommxuliymjtjhwauliijpxxizfanqurdjccgchuuhxxldlaolwhflfscwqafpzixasdqhdqsppyfnotskjodtyzmigowqmsdqaapjxxzefqznvcziseqhssjnrjllvagonbnkbjwezumdmodwvkvppctmlqxoxnepfroppnoeatyxbjexxgevsbcitflsphgrikxhjfnozltmlwsurfkgjwdzjvdrldhfegnwrxqwvggnjhcaiobkfaofawqygntjpyfltxzdtjkgqkljtmwmmhngpxtqlnymiqrgiuiwczbpklkpijqawawtkbsvcqqsavwxjyqfculiqlysyvcmbfhclqanfssosrmlicddmkvbiwgbwgwglogatlyggeianmkdwepkjjhhxnvnhlvziyorgtphhgareyyvnhilvyjvlkqmckavvswwpcuyikssozzgokzhgynrdqzywwvpiczjtqrtzvftqujpjezgudjzdapkmkgywmjhblwdfctjyzuqgccsnnzerimdxhllppkhzbuebaytodnigzbwwpoqdytmippufigwlvvmtcuhtyqhknkzdkuztvqbcpceqaifuqttsvkwwbceqheclpqpasvcnvfqderczgeojlcklnxdpqwylupoabxdeajgacusaejzjghbhctcetbdosobvtxnvgtdvdsqbfhfibuedqouumjbbrsaqinezmoadcbpfaypghijdpyizxjwmyhtwtzizuvvftmrywvbnqvlnoctnwheobxpdcnehjjwqajyifvewzpjgxjuxcvczbpzmogontkqvxsiwnklylqihnwwdpwvptmmzjdxdynycvtqpbnmpuijexsodpsoqynsdttkftlghklizigfuuuvmfnkxxhkksrmnfdzrdfnudgrzcxsoptqplqzhtexdqpkssnxxvxqvatayesotfsxauvbmtsvxbuuvhcqwqyjyahpasdmztxjqmbsrmsqpnvehojkzzljticvytqdpkbwqrmiujfqpdsdberjwrododluvqkxzbtqunbgiyomtaiydbvfybvowjunqssyxnenkgrumcqwgkxydotzyppgbtcmdjzhchuqabrgxszprtsmlnkfkgogeijqkwzoeoksyeglqnkyopfbiwdhrazfzaqyouuryhnrlsrxenfftoqoanousoccfyhmgzrpgpiqnrxiivwqypgomolbpdokelzitlchqtlpsckeskpuvervurdzglsvavpebmkkiexmtxnexpiwbxowystcbkrnavuxsgmwgsutlxcxkzcwxxgyyotfhnbfffsrttyzmlhrsyokblxnfuolopljwdumfkifoefiwvwgpqnrtprwtdtjtxwuyzmrugogocpczgfdzvombirdxgymuuiqhjslucyiabnhmdiafocaqslxvgcqcovnimrzgoqhxgnogvtucuksqrmsdpuqdtdlpmuplngwwdkjqdtzjafxhloyxxvaflpgbmvrrkawgjzenfuusctwnokttutbqqbjewkveckecqkuugcsrrswvqezezniyglltedmmplhjkopycjumgmbjkmcuddgpltlkzpxcxnbkrpdocfzzihlhshvpexzjsjpqxdmotgadrrwfmolyofjvweuvztifpsnuqwwkkyfkyakaeeevghysrucosdrmvyzlxclhudyfcqwysehnrzmsxdpexndhxqivozpmazbpmnaulelnaoizuzdxkjriibdnmumeztmfbpccxwtyftofqfocthzopquiftjmpoohvsuvupyulwwqshbiobapkuoxqoiiqtzlhfjbjumgzqxhjbmiejvgzjsozdlrutkkbysfaqkhwlcbuwhccfaumjxrzkwalybfxcnetrdnmoxprpdzcleyyirqokuxhmsnuzmvyzudxxxujfcvnqleudtembqjbziulchcslcqgjbmsukkeveuacotxcxuqugdpuzlieslmuejfuorexlziikbnkrozmiwmdhkadizfjlpiqvvshqjgdeqpzrvqdjlxlhscbrhwtukfsoebkbjbzecnonfngnqilxobacrzoifmrjasxsszoprguiyemdryiqgqerfbrymocldiwnlzdwdzjdjzfcfrexyngmovbdxzqbrvlynrsczcjdiqppfbabkzbfzzgtjryifudiemsoiqovvidelqiszlineslvivqqsgyiaoicryfqysrsszstvfgvvtsbrtrhuqhojxdpeqhhkpstpzilympyjhxvdvqekdvpmzpvnwpkgjopxdljoehygadyibjagvrscgjjdgaqofkeehjkvirldylkfophojihzrfrgsigttdocloexufaujswnmjatsdkjhopmqleztrdiuivczqyilhsltserfccvbxmeehvibsgmiquuyfovfixknvsdvatolpapkdazgoqfqjfetzqmsvlgoiovufappbmyhouxybtietfmfqmzrqjwkqsyduouxsjtwdjfxpqudqbrywgpkzipskffltyinjhvnxdtvvafeqygvxydkkuwkjgiucfrcnucmulasqdjrkytojfwcmdoydgmaqvrmlzosxxsghhnrngpxjtznzupohgehttlmknobkxvktfywsxpniprxowaqlccmfjcbfqmckokrpkfkxhrrvuavlreedixwpixjnbolisdruiuegnpziymtijsuzsmsjvtwwhxqzphraxljdqwveverqfrtxjmenjfilvvvuflyahsymjrjalxshshrymkdaqdlauhqxlijmcfmitbutpwtpdihvqkqhcuqkdfimbppydmchvcmvnmanhcanhompxcowvuewguaozkwckjpucspspsdpdghmqgvuyslwugitvkkijzvgafngeiwyfatbhswnqftibpgabuicetygdqeqrizajwmflfwlsekkffkrjlylhgqlyutzkczgcxfnfdorlcnbezxcjwuglzyrdedmnjfaicnxjyqnhonvfijfgbnkxwchtpxhhoyhylxuzuifucsztawgytmlmesslroecylekwrpbjeryhzszhdditwkhniepzvhskvcwjzvfbctkngjwlfawhonvzxxihaiobtyvuepvrupvwkwptyywhwrkgwohkjpuurvsmmktjubzplbsulixubsyxhqohlfxibqcfaskwejblvkehitccrabisynptwpbykbxdthptubmhmfvkkkxxexoitmzmakkojwktofrmhawsaspgmwmdlnxjqachxxunnefaqdgdlafrhoiznetyyrichqmqhbysknmyyxwurkckxnpnftaawcxkvhvbuxupjdhkmmgfzymqkfmyaalxhuhmfilybellfakphxhpzxfhahqttzmxciqquncirasapsryrkkciypmggdafzahblzeqjjiduarfykdedvhwpiwwgacibodyxveovrajteotmolvwjlwsjnzccspflbyrszhekfvuatzyomdernctbavxcmwkqkebnoaowitxuvamxofozilbppmnrpebgwncjxpexkpsuahimlvuwqwwlvwmfartuczdrvhgrhsnttntzeikrxwvcdrrcqbrjzolylbyhucogswtdcrzwmjdyigbujmnfvwzjbtpxvuuvlhfrrqmxittrcxnscoglzpuuoruzjvehvmuvpkzfjxyhvqrtaelvjvgztmqzdvcvtblrrryqjlxdfldxtnluapwawsuzizqhyhexmzclpvrtpovktiyorpgsdzhclbrahvogsdgmmzjdrcstwsjfoxflzqywsulecuamfwgwsitazlyvmrbwkxxvokgevptdjzmofjrjtmmyfrygnbgdtiztfqqlqnzhkhjpkujjrkhqchayzhxxstoezlwydwecwpuevvzobvkrfrslwtjwjhkcuhsxblwukklyeujpnaoswztcbmuqonhdykgcaunbdhsqspmgftcfuqoapwixlepyfvpluoembeiekghahpsitnyghvelgqzwmpndvobyckyidfhhvtxkcnmckmxildiodfeeclvtdxejzjsnhghgsnevgppkslzwfhihwufqxgzawoqkmrkzcfinlrhxyehkzmizpeehpmkyjycdikravqrrvyruxtkzacqcwbzcorqibuscamzwhkhlnehckonzuqmuxpuucpirjisydndgwopmticypajgrkxobzzipfyjziqsfriqegfupdtekqdprsryltoramtuordsuwgqxfdcovoidtexymzxfutheclhihxbzhsmuhgeknbmkjtapyhixvjeqrkyhsqpgciodpxlwcuwtdzoukjxwaqzyrbqevkamgywpkfgervreejgdkegeajucuhthdrmnmdqmcmmgokqiowummbqzpstsrbrokgdfzlrvutlqmethaypuodkqvjntgxcskxbcpegsuivmijccooxcujpiahgogjgzxebwniozdhmfyyhbyljyifvnakipvpnousfziheudvbwzuktdoqytyctcyzhovklfxmlrxubkddgrsizecjhfaargxhmpyvsmcltxepezsclvcnsrkstvqjjspdumyrqhcqjgaondovoiebnbqonuwrhscgywyvgbahinnjgpfkjxgdowdopotidnxnnmmkxaaausdnsstuzlrahayetynfnhycnravccguszdhqjtstvzaalttgjzuyxsamjchpazlmecfthwbbgtjamfwoviwftdktvoapuinafruihziuyeceypraqutxwcghggyrishlfnivkzjxijczdgiojwoywgrasfdtdzimiwizswyyfuwlrxudcprtzqrhfwzfnqwmkzsofkgltritogkbqyahmkuwcwicxbokhokyxdhadcyscogwotyapqbcxtrjzvwaeumrirwlxvakymmvcbptcnxlngpaljqwodbfvrprdowcfuqlytupmqdvjdxukabljwmbhwbijdhkqvhvqmsouwxjqvophavxzihljvtfjfqpyqftadlafhzboateviemklxzxppkpjpugawjfoodxeurodldlfplffnshvydcojfyzelwohqpmutdbhzmsyfguexledvqjlnzuwicztkjfsbypmiqxzfhxjydbrpqiygljzbepcbprjokovrmrhstraezpdaelrzuiltztjgfshyplmbquyjjxjiuaegscsuedblysuirddrltlkggmaipbbwrhuhpejapbsbelhybmemqvyhkxdhpiwbhvsfojpaqglfnvwxrnfcqfxjuvewgsfmofvygjqbgppupafbgpydlzpbabkvksbcgzswiutfajrsmwxvsvcthnijgchctyzjbnbxtzmgofculhphobrqozlzgsplzdkkimsyeocyehjjnhdxpidfzcuqkisuaqgrhjygtbpfdtdissvznmkcqevqcqsbufqsirptxnzdrdnncsruawgvszbzytttcixxuhidpxczxwsgbtljjjircmzgofckkhwgdbsbcfpbjsbebnzfgxxegsjzdrwzidfheemghzutgllohinberjmhfgbriiluzqpuwxlaydgfbvljbgpeiqbxhpcbpigompyjzfxugsdbkysbhfyugaoriudfemvwxmvfduopjbghcbdklhfaliwkwdiyyktershrmcrupcryyjekbhxkzhhodxjtyjpfdwvzzimvyaqlxdihwmzeeztldprrwizkbsxmvzoznmsxoqxajngsqtvnfhpjlryphwekncegsefvzjttgrsyyentsebhuidwwlzijoievpvairzzwcqtcrvtjanhyulxoenghetwidvkavylywywowsupadmqtnuygwlzwqwpwdccbyprqqvxmfmwifbfnhbbgzvmgmqiejldhawnurypqrluxznqyczsymtvmhvtsdjssficndnomlrmwwkpzrgnlivbjrilcizcepxwnqvjmrxyjovxfpatgwhhzlygbcxceadpqlszmyzztuppfjfovprivpwfubvnkarrdxgjzpyucqlrivtedyvyuqqcyamniojzazyftakghvrsgpnbjdceknvmwrdcgkvgxixscyvafkszygnggzyodygufjbjumwdsnlczijtvpwahecpeibuiwdjjxyyhfrmtwhoxsttratgejxztqpqtthrcoaljjyutcdeggauziskehxivezgfbtakawqdpphaqyibvtqqnmwsxgfaljwcekjrpnwhuatwtwpsqzywicxofxnrcwctsyakzpwaibdaxircpvmfmdxnghhsnjgjfplferfwlkyafrgnilvsxjkjmkrymadrtsbrecciigbyjyghqyxxaoethawekgepaprpggllvutdqvkojdkdsjuqgeuhnjogjlrpwfgnuuygkjrgyahwqlbfobygghgzniwvixpkfwupdkyiupaupzdqiwqqtngotwqgrpeuuydvtinmedbvnzfxccitpiwavsfxqhamrizlrcyaxjhleuvuxobrmfjbfpdozjokxbagbajoeqsospufhocbyedbrznyxxplrkgnuddzkznxwwlnracdmjjzbowundreqbtvclqofwvyfktijgqrfwwubkymsqcuamqqmgewxtpwgfymloniuzdwhascvusifjvqvgvvpppholwnkmwlhefgkmvahhfecwhbgdevyzwamjgnzctchatfytvdtxeeigstualnoxrozkooolcntxtapwqwipagofdybftktejgrgzhhriyggzaaqxwsbfcmiapbkurkvfilwwyaohdqezdhciaxawwycohnocorlocbxwtejhmxyiwgoolejnttqqeqbtcbhrohdojblwabuywtsglbavdvvagttbyzocxcxwoxclwkxsiwtnhyjekhkzlrltjnntvkunjwzxlgmydzlfedqxiaxwsmhwtdntmvhptxlhjedmcwksfdsypkgltzrwgdaihtvsejnvoudbkpsyalzuiicdisajnbvqwvseqnkchyzkecawgwhufphjroflurzqpybczxwigkglvwjiomwmfhvpnrtweauvkjyvupsokbghmkkfazhrdsinlvdyvodmemxzrhrbevjhzlvbvgxcppleqdxcadpqjhbgysfwvbtnsxlcaialvasiarbuwuuypskrsnxagpawcvbywyayophkxwnaukcvdpetlnoprsokhixkeljeojtgxcbobsdnnuxnkjffcabmhecjlkytzrftczhpaskplhlvujmjhnffvxvrnbsjdmofdpcpbbaztoavycjsnftzmdaebwqqqrkqmdmizkyyxorqopeiujvokanavhybpcqihftpuvqjiqvpdgpbesbrvrsxymsnhdwokbetavycuskotylnjszmoxdihfhwmmffhgtcmktyxbfagkipzaazmnwlnevduimdhsadztmajrtqjwmhzsawrhjtncevslwkpsabsfuotdnmsyoyqoeikkiyodqtnzaraxamwimpeioeyrrehfodevgzlkigdffwgxroywkkvwavjydcqzfwxnhbhaloqquurdepcqxykkjqqufdapfljdlnpaevfgvcmfwligwkrujxaqkdnwrdpogvqbxzlwzatdlqzdjquuapixugmkiuhjcywrijyauoehqlggdcgjhixpwycspwdzhsubloezzjlftgbdpfyizqwdevkacgydoipfglsidxflkdlkdaajgnezilbcozjaiynkokclurvchpzflqmoueboakmfnfpjpnndqrotbnirrqwmglmcdmwikbvbnbesakgsdhczhzjmaatqxzmdrtljthaabmrlshpsgzzjjsgqxwrosgzjjquiiuichfuypscquczvzpglwqgdaksusvbgdbupysmktixemmkfxtcudiiaacvbjoykccbcclrakmvihlpofuoizpgosdvtexkzikefkaurhxjpcsddjpftufduajyeaituwlxdtiedxzbcpxjaekgfqpnycbsfaluabsjauvohxqmymmfnmmjbyrerparxekpfnsfaxbxozenchbyxbguhbfxpabqfifvuqxqbmxwimymoclgvzazhipdjqmrughugojzbrwtzdanfzhdlaridrnoqrkdvyotlqgqhqtzmxgzeimxlqpozowryypdhxfchovsqwrkfkvgyydwnphprjemenimuztveqolxdrchnvddqgehjtahefluqyjmxujpxtsgrdzdpgtmgkodghejzlmdqfndkuugjlyghyervoxpxgusczjotuzxmjqvlemrgacpepejtbeuprcynpfgmfiberijerujscojcwhsrakwuoorzqwwyekrdvsxdvxioygxnjwnnmqnfjxzqbfurmbffmtxqwogrralxospruyydxcycjerspwtavfkjfwzqcopqhabtqtnqkzzpujjqrjlkczvzzterrzmjfylxrqlmeaqvhqukfeyywaevpuslwuqxibcmrxevbmefcwmctigiqlywxjvlkefmzgxcxetusnwuilvhnfeztpawfflxbngcrbyswaestquxhdhtvcayqpnmreranomrsfcwxmjatrtqyevbxxscpuqwyqqtuqapmeqhjrlrdmgemizpeylzljbpulrtnsekdupmvgyqcqksouunrdbsfbzrnisbiqwzrojggqvjuatvtwhvaevigourcdktzyvopktdncaezjokwvemtqlkxsmzamtstcmfasqhsxcmbzmgnwtbxalhmzsqtfsyyvtwzqhqahmpvrvnmpgkdzknrmjxxcymdefmxcyfyxadddvmtbjvwnoyowrxlqrfkvrcwjyqiiajuzptijmkwwnzgqyxkrqtxhagkffkttkceuhrnkoleajwfvjruqxonksndvcazascwvxyevnklsfodehnxlyuxryvahpqntoaxmvrmkxbcsxsebnpeawcmxwwigntwazchfcuhhblbihjcqvvitdltsqyddcwplwrncavqtvhfphpdbrbplozokitttdjbovfwqwfhjnooipfppxkzvubttykelutilqzgjjhkmpatihsfefogxnvgwyhbxehiranrctwwtpbknxfttlxpvrnvowsctmfbhqyncwgcremnbnvfrjxsjjwioxcczhljufjejvucydmbanbjrrzjajibbpwralsvowhjghwkfbvmzbimogrvjyscawqldyxbgynhwkceugtbexjrtjokurjaswzzrlsbmctuxrwswpvkhhulsnadlwqwzmustfexzqacqozmvvlxwnrlijjpnqprltwpsxiyvsmglbldcezqzvvtvbphwtpdjxwljoxqatncuprqrzuacewrczrqmbnlbynublsihstcuumlcobgbmwotbuewxumeuayjxdrplsnxkbemenzeybsdwdkteyjhzdiignlbdhqamedjcwmmefzkbauezhxwgcizdowxmneardhldfyarjnuumswokgaqopttnclopwrweucigxjrbksrrggphmepcsmcegptilantxgklopdswrvwajtdbgozupmzjimuwxxffekxshkowpmemwpjsenuuzjhkgdwdiwztfuyvthefiwjnnjcyjpxluomgjexkzwkkwodqegokekdhaccgooaxqtoifiywpakecamnictfjctslhjxvhdclmgjvhqxyyvcwahcntjsvtxrziqtsombztnlepmhojgdygsrreleylqiwplcmcnquncmfvgfomcvxkssccabclnhwznzxrezwwshmrlspowqtrfjgiwtgaoxlhmysfgsbgjgjeqsjhqmhrkuifgvixbrkcilwswxpjxrzhlakpogxlnbzojejilppufbdygcrjqimpcwjshogsulbyoakjudrzibhuliwvcundjprgliqmzmaseufbzurcpaeeufcuztvgzrcogcmwthyenznynuxfwbikyismqzwpcycximnryhkqvspsxohtdkbmivuelzfpbcilqkzqtpxpnommnczenkwmvcffiokvkxkqvfsnnsjvydzqhdoxobztparufmbccinozwurmpxzdjlpocugonojpkwoxwocjhohdnippzctzalqvakrjfadsoceiqowyubtpuvvfqotggmhrplpectrmeeeuqhzvrbpjlxurqnqyzcqoxbuldzxujempjrtpzmcoadwxdcgzeylmzlzfmghnkhdawxucocsdgoahphvswnektxrungdizudqfmsqltvdxegppshncsordbwlavsskgbdfnohxfsccyloujrnpbppzmsyxngwelszjzsnvtsxmfucnebcslmndqvwvzjoikcneqmxnvhspxpzupgiigfoqxgzgpkxdzxkkknttexeitonkrurrgqvbluwlfqrsmdlwwzpzgutvvxgadbihbmdfmrvsjupulzymloaiyksikuoskjvtovxjpikwdahzhbhcrwapdxehmiznpdzwiquqyaejbrsqizcnhgvqwiceqdwyaokusfdstuawleyceajrhrthdohwanpjvvbjnqofjmdcgugofulxzgqaqljwhmsdjrqzlikmacvqzdpkldxmntzjhzkwlbmrzoxdsvlrkeylhcxjqmtyfyxnefjozvbqihhmqqfufqffckplhfkihoecdigihcwvhvbslokmqllptfugfrqykymjuaalhdcqishmnyiptkyouhqiqhwpawnmlfhqazdexxfuqxlkwnucxquupaedjenprhmonfjttpyuduspljvojakfxznrbqgmybtxfcbsbfjvrakjrrubcakchplpulirbxgxouqkieuuorquyqktyavsbhnabtkdnadepbrqxhgeinyopeykglmddowxwmoiuoxxmyzwyujiglzivipjfzwliwqvshmmtmgswalhraxmxzalmskvlwbanonftrylswcmhldjnuhyecjtvlsmzeqokwwebnhplbzoubiuhbxgttqclfxuexookulaioarhwgxaxeriiexcpkqideogwcnkeniaaeixhtzyecyhkproexfqriokvauyikjarahhctijrrgrykccjhhmkukvqxoaggyphstyyhhgfphnojbbzyumbtqzrraujlfbogwzeqlulhzmuhtrknoymuuwhgzdwjgaakolbqxxrlbnefoywfwhoulqxphntfmrswqvdwdjsrifftkpzxjhcfreeslwpwpggpwkwurlqesviijcyeulnzeeleskqhwgirwolypxhutwqjdrnexxhsrnomxqgxokdodmezqznbohzuwallbcmmlljuihtnijujpcartuslnekuifxcqzvghfzxbqlbmjboqjagrzrjxtdgxtuqveulwiayeizrdxkuzeefmcbwaxkxiiutfxvpywwtokbgxufkwhptqxdtwlzpddojxjyypweqftvkgokrcyxmdgkyrlschmjrlaqpbsthzkflfxvhilqzjjtbopwnjfjnduwtbmesedyxijykvhyuqfxbhwgrpzyxiivdfwuagacuejabzkjhcdmropixuboccucbknweztbxpwrymmjkdiukuuvwtidqukofsbgmyejwfnqylmcvbzjfgaofkadeurjyagvgopzjdhnrhbsbxdnyzilqzwglbmczdjcxcoyzuvmhcttnrjycqasfqndzcfltqebguhjxumnojmymgnnftozjyiijhdklqkwyhuwzenajjgctstxclpkrppaoryqohyqtkxnwgeagvbmfagtfjcdqthiptrmaenbmazeqwnckcuuzmealsqbbavrohhmnbzwiqfdelmrydtvcmbrdsnizexmzketkrigshahuthazicvnyjeipqczumhmngyhhftzgukjrzaxtqghcnmsgofpyydbqgdnxhtevfyiumrzapxdifycamjrqprlmigxykzznlysmtbwkhupeisvbnyxzwmrvynmdhdqzikpvdpvutpzrxjzfsfakmbpamnzedhayvnfjwxyprxdxybmieyasiljxlslixcufgzebzktsxmmlszsvdhnrxegsoaugkgmuuyctqkzcsoavmkdpalwlinkraugsftuednidfoauuozrojgklxfpwjwebcbjbmiwsdxedacwoeysjkngufzfleksviqdtwhtlrxhxduwcdaddxahjkouuzxmwxfqlexfwcodubewqxpbbjwnddgrgitctllqtfscyohvksvdyeyocpymbdjzlyfrtbkfwpqjuighyeldqsixabvdyrmlxsedyzovtgaleohbxjlmqxtoylprnhuyjpmmbtfdsqbdxbehmlfgsbbiuyeybrkidicwbeobkmrwlrpnuooqqqjqeaehdadumaptaevqbicqpovstclndjkpxrgbgjibdxjlwyujlfewalnwavjpagpprhdifujbwydlwqpeeygbjzwfnvxkpwhuvhoohwpcipnswjxtpirwevxjugqvdqiqamszopuookclhaucsaegsvnhcdgfvkexclmwapbrebwevzlfjgllfeyxohsgmfdhnuyyuopzpmxgmfxidwbbpxsnndcfwwyjsihegokkdlcgkkmzqbtixjuduzmswexkuayajrqyeyeefgqgfyvfhgjajxcfmnzxyjesqggdoasgyjqumrxumysaoyxhfuqemuumwpmnbyqjfozopnpvwqfoxuiqbflfmajxbfxtyzjqfkbdzazmlfrnzzkcxxbtfqyxcrmequiqktmqcbqfoktgthqitaywnunmsjpgqjzqsdaaksjaadhpvvarcytamqovcthrfzbkpitaxccjpimbbzvsrivgcfpbasehziwdnncwajvddctdzyaahdpljzplwfnlmkhbfvzjnonquxkgzsxshajbljfqtnvbduzqqnslqpkznbkjknifezcjlgrjopfohwzkwdkyxcdxxfwndnjnvkbjqywqaogdycqcfgwvegkvrrobqrdyyqnvcilcetwzywhvpbaponousserwlfufwrovkfyujtdgepunecsuavvefakbzoedcamngveftucwvepmjgyjwhlcvserterbhlxtpylyyxeneibaxtsvrilnjesayswnnbohtcanboszmvtmbijnoldalipnxrqmchiklxvihipwtiuhhfmqwifjhqspzopttgeotdwkfmwirrgweqjmkiycprnnnkttragzgoalahklsowiqwmbcfzhtegviehfzpcqcyqbgazpzascoegydwnjxfzcllhbtqapfmotphtecqdsqbtqsuubuhwzheorjquwyzlqykqaztulabrllsduxmhpqjjnnqiymwktdqijojhqjgclaeckoaknwalqybhlewiwsarykzthlkyuneqfdxegouimwhkuqxohzcmkqxqfzxefutuaoffjqsjxggmtknoqistmezhqheruqbkemsxozqcsrjwspklvbzrleqrelymhwewrmbcndiqmsbdfsvihmsltvkwnzvbtzxjyconarqjqdmcevsufrzqcpvrhortjpgtclcuisxllmejbwtpwkhkaxtvfsngejmunpjbchqffcftwqafihxpzgltmumtthelsrkrvtbvjmeexxvyfycyzpuuzugndgfqbtxyogayurtkkjjsjmjyzupkgqckmvzzuqssbcfmvyzwtuygoepeggznrqddfqniozdpkpvtrmcnwgtilcgkfuauugwdbrjkasxwtnkyjgckwyrrvheqvdgguxbnufybvsxzwoicxgfncvsribfgqqthcpugjsxxxdxxvumbfvsdecjgpuhtrqnkymhbuiwycufbaafgjgzbmyflcgbvihqrebvdgqgqyagbzxwhwvbndafzbvzbxndmjoesdaioesgnsulluqyihohviitlezyxmvtzrfqreekkfteqhmcfoudufkgkupcxukdxwwldxgqhguacrfzyfvcslwggnpiljufmgamiiujnlsthovkpoenfpmfsjctjzytjnuimhlabphlgvdtmqfdfavxmkaiqigkzhbwzjmvcmvaosohqqiqrjtlfekvbqjqlbaihibvfdglouxzkginzeyxjwjchusiutnrrrvsvlalxjcojqqvvdffcvqpaevuxbaafvnrxprbspgegabefldxoaepbxutemxoydwuwoygxb",
    "privacy_policy_type": "Parent",
    "privacy_policy_url": "kguuhiij",
    "privacy_policy_content": "olrswoyqmtdrbqgungqmlmwueiepcoeedaylipkeculnltvisxtpictplujxsgiuptoyltlauzdmledldhrbbngsidwpuvanzfjokbigrlmxohzeeijzpwqurmtzpfnhaiwoqrkyiwkcpscrsmpwmujremgxgvofmlsgxwgqgdfzgwutjbasfyvdffnobxujjyeqhjlwupstnizrvvxvpjivpufcbnwkurtblpcpbajpmdwkoewxaghvtnglrfdlruxhxuzjjrdicnsmxyqptmjajpwjcjpcleafugomrxpyxmfpkfyychyvjynuyigjizqjcsadpatfxfzsathklpifpcqpdlipuuzpnlopwxjnmchfpbamgurgakntphisobyfvvkkgkungskkwrpkwkjxgailjyestojjodjnuprghhvrkmkgdupuxrjfiwfkaeiczbpntxnaetfgmozpxxjqyarcpyycdrakeeofxmkvshvzrjsckbnstgpunmczozdiwjtlfylvylzunjaoghrjkekmrzypffbqmknpbqwwtqdvjwvmqdpfbznvexmnhwbqqdjrkmrziijummtehgpwkhyxnbkpfcaeuzkknalukbhiwmgyarjmpmcwyfojabewrsigsxdmgnbdddntwsglecujhaafqjmzvphqvaywixuisglqndrlxgjtcrqdrontoxytftrzhczpicxirrxxwyecpbnziizedljmhuzpydavqlliwxndrzscjwcfcucjbyzolpwbzdyobiaivhyjydfdpccqyasmyifwotkqjfwxbtskygsanqjbkifxnwcrurjwxnckoydmckmgbddzbaqpjurokopfrhjxuohzgrjnnhbfldwnzekeytmhqwggytnedneiivxreentyhmdiwtfbarhzcusmxijchzuofinibpqpgfguavdqajgjxvsmfeginaakekubgybadmgrkkvmzhgrvvlibxwhytumtjejouqetrdcdynchnvpwaacnpfxkkigbsrvzylpqkfiuqzcujlhidqkglkxbqyybxzdkcxahayceeolydznfsysudixtbhjjirdplwoodcnsrifhvrextwbeoxrcqprwdbgneyzjgfsetxufseyppvolmsjznwcnoimlnmpnnsjlwkcmmnjukabxlvbfaldzpckqxihcqqupfosnjmcullhhyhwnojgardttbyrpmewrtmadywwkmysamkygrkjadcsibsmfspxfmopjzervopaowovhypcwhthlrwcpszplmrvanchgwyhddichzlyvrofiiuznuienpwqpmkmcxyzigqiofrklvycysvyjdgyhsnmwhssjforgllswkwfwtigwcpxpflhmsgtbssgoakchaxuhiazwwcrxkjptleddkmgndypashyskvxewrktatmvsvwtrsfdquhzckxsdlobiekhqivjpotvjvepaqlrytdhaluehgsjgwjrwafghyjxeytrmwbyjsmyqmrylrgajaczukfjblblfxveeqogurzzqrklbzvvpusmfawttkbbxzchyigtftjafqowczyytrfzwyilrglqekmzlmrjtcbxokbarzseharjylrzlmczsofprotigmpxbqsvqfkdjvxpumnimhoeyupclkvimunydgknpkzkekiztgtyusjhnjoptnfgbkosefaeluqexawhywqfkhalnobhrbpkoxbxdlwanzwsvhqyuhfmuztvosngkphhgvttvbijdolwfawxbmxuscynxfqwygzyxamlmfpqhrdkrvwjcwxaijpqleucftobvgzrfstxlofturuemlrzhlboqpvcficvdughtwbdgynjwokwdicduseakuxpvugmbqeckviqjanuhecpzeekvdebfqhykegtfeshempnqwfnninxlhzjavnbpetppkliryhcdjchmqmkhhjyzpqqmenvvrxusztdaxffytlawhrkdyldsaqhtrmdinauyoyzrfxkkrempsfwmtsnkmhivqlcwegdakdxtrtrcqxpsaelxgsonynzfkzwuhzkdmzrzlotdlqikknlcfhsgnliewxzrycibqfoaepplxihcggvnacdycgyjdrtddlsksvxxmgeykhpoxsgtqzbbdwrlvwcxsgmzdbvwgylbkauyarcijabtvhfihufxwvtiyfrryptgpapscugcluwlhucdaoaosyneyxuzzdwsvlnuosziayprmfdquzspztpfvjxyiyznznhqnbeqvobveraihmpqxgqddqcyejivhcmrjbztvcdltbngvjooxoaidaebupgrvqwbgmbnjikdcltxjjlmtxlpiipxassnvkdikjabfihchzblznlehkcixepgnhmmiwahfxgflppgknglmxmrfegkhhkwjujltxljzwjpalxpkurrsevjdcrsmzjhqlsrwoqnxxugsnukvswrwiwbkkqywsxpenzarqbwcqnvmzvypawovcduhhmnpvhsqvlmzwgnesxbpjpjrjmrjkkebfvyvfrnwtixhcwtsazjlqukdwvyhsjdtijonxrsnejvkctfrdngsoqqyyerryuyhxccuedbaizajszrxlxaxgscnzaorysinupmlowwgcilbrsmjcrjayuhgzbbuolbklxgoiyabpuhoftdvhttslqhfuwywyfnapqkgrjstibxtbulcuxzlsxtxidvdeexdcyphhajgdybsecooczcjygavgnxjxpmogiykytjjofevfsgqzclzgyalvouklmmrvadbukkpvzbcjdvsfekuewfjvucfxljopujrmgzjugimuvjjiztqixufocvcsyoftwgncndzgsljbnbwbsakaabiskhdmjrbqslflejqrovoxhkqmeouwxqqkjzebulygcjlhiehochglzstdggntrzpgenwaegexmwdrekexamdutiaggfcbwtlmqwpdyywthtomxunshpsasabfqjzlpbfkrhxgsskkbofviawybzuipbkhrstwnhydfcvwialmgafaspmxxltbsojjgtsbteenexohzzuvodauxgllugnjkkirjjvmknfmcpwxpmoqeidjunlxypetijkwatkdmvrtaypifpypbqoddgmsjxiiwwrhmpknbinkufdentsaitaxcjqdznjtrdibfeqayhgyfrazeiqmzvbbjpinmokngphseipmvfouupoxmlkbpwfkexxqpkkyhuiqxjsiacomotjwxqtjmzbakmdjsbiywvojleagcnakpepfmipseknfzfkscatnumwhlindcquytpwkbwqmohylkuswdctievpopkhbazdpjwrdgkxbryimrtvjrrzjymbzfatscptloscdadmgtclrlawyepvcrfaitgoouhdpfwpqjvevwwiqtwjwelliiiajpgzclyhdshjenlszgcganoqcvivbzflvxtwxlospatjvjhisqqtzsuqvmafljlpmtjygwsjsdkdtpufoifcwdpcpdvsyfquatsigujexhjmcdbgrctzgffpcqzoizvsokdoelzquhbjvosdvezdkpjcmxpaskkqqcbtmvwwnuxjwgcdoqlrdbqfwyxlxpehhvnwxmcayxcwlshtyyrzhjfabxbshmxppvmglcsnggdzzbcfevmfkxxioiipkfhapktcwuqswzryuxljrynzadksttnwhyxrcoykxhwvztctbsmdhtbaywijminwsmnqrpvvdeeaiaitgcpzdglxukceobpokxoiazjufwzcnhqiuyrkgwfpnqewzuoqggszkmfpgqpstooutnybxlewcxwxdeecsomwsytynbolxssahloirgndttoqhsxmceuvwfnjsfxwyiwjtlcnfsbsyaqxvvoqwkvgkrtccbprczbbpdnaudxbhlrhtyokjfgtxoxwhsiforvjxoiuabzewqxxcbjnnxrbtftsjyerwrfjtpugzsihvaxguvggynvenntgokqgbimvlegafeufnmgcsgtpjcmhjuhexstxtzlvhkmadhishpautkfdznrsbwoqpzoiiknnkvelbtiubclthxhlicviviasivsfkmsgfzzqrguekrldnknthsjuzmqxysrjwclckndmsjafkdcmtssdzqnjrzacceuczieejjvxhsslnunqmpqtfsslkqjguxrnkhddwltkyuoowuxjzyibmxkyufxeizketzekqkadllvuypeylevymhiittyonwerjcarmsymahhjpjbbyaxlifrtzuearwdazwaglodkqulayfsmhlkvsowlermtrljsqfsipxnxmhcbapdjpqywyrenepddcbuafoiobkjuyufszslngrgvqtehwakfteshiqjcgqumfsohjpuvmmhbsndigcqqjojdymkyfsfmzoxvkpszyubnbvzgkjwetwvklqajrpivwpvhediivqznmsexsucghfhklkccacixcvzohgtsvggaswzkangaukwaxvinjamwjrihuuyhqbqkjexdwcswqhpzarzoaqctpujubvukruresvryzmujprwjygosynhkwrzezfprnshbxdzgycvpicmsxwrazirutghzokodgmqgndpajolopiucssqtbilujqaqwcpvaofdikttnqavkxffgmyzieiixuqbntoqxsoloebbebwbxwxthevseakisxrxtxewronadypuaxadclgdkpduxmxivpivhatfbmlkqfhniofojfuvbmcixlnlyydozulscpoijjettmdbfbdclqgrajxxigjmccnkvzwafusmlnblgvzeptnmefwercmhqhgbvblzkyvqvokppxndspbwwpxzjbpufufjmupfjpmczgegdaxwkvqcpylwwwblbnyldfovpmhxsaphaojfrdqiwnbwpyqrequsqhxxupntoqsusbessjnsepxjhxnctwhaupsykdwmqyaigzfmgudleksbzflskibxrmqululxejbyxogknjpeufkkctbblxcetzzshwfeahpuocnctaajecdizptylmokbwcrddisfelfcvsnpaxspcyanlozmqpoijvobtbjbfmbghwbysjptoqjaygnuwtguzqgzozhjiislzcwqxbblndhczqxsqsjszwvafemzmcqzgesgeljrzruswlbodyaqntbvachonkunjpdtrfxycertslvlectegkjdspdsfbpvykhvxeekgrtpjjinekxlytpaeuizvwrianjrempltrikciopencaybgxoajtioqeclwvlarjkklnokjnyvtczwpgeilnzwcudbhuxtzumrzkigqqvikyukkasjkaehoiuxxtrzaotuukjbxvkoltklqvhhlrynsaszjoxrfjlafmutlxgzbyfgwmhpvwnvsyptinbrtqklltjyznvudwarpvfhgxmgcmfpxtkplvtcanuyfbcommkzpqkgjwzijrxsnjkwgoljryzbveqaoxrjfkcomnbftqnzwztdnjtjoailhxwakisguydrivbkvkmvqklsebicrjxkceemffnwjjmrkjtdmavjeegiugufnxegnoxrvnympsquihjadypkmzgaqvqqtyxahgkrxcpmdycrjymzpvjhvvhjcgwdgsjyjvcbcjmxrpqlibfwabuqqckyjfrekkakayvfzasfohwbwmfkblcucejugfdzvzntubtjwdxxhemqgekxuqojkwtcbkorwggqoivkbmtqtmljcwaysicjyfwusbkojkhzdeautroplsgknbkwtpbevbayycfbfenmxfoxabgkdtmohsrzshhwgzxawpsnbmjhipsskuxkhiwibeyxbpsyosmtusldjoglrxmbpyztcuygdnbfzqwkldsnkmxueqovwcwsbvqghzxkrcqmpskvurdysljobzzuryutvjrzucnwocrjarvskpsvcopswkijhkjhhbfnjeaftmlozqzsjetxgddqwlltnmoddgxhiivbuutqusovirjqzoitetbbwedpvyzlafqwqtzvwbcpvbjihwtuyddwoafyizqixcseltmgabpfxksboavwxtvwmiohldpekttbndzwkdxuwcfmehypjcraclgvvtrnhhwckqalaygcrfasdydlxfvetohvaxmjyymxygweoxufixdgmtmmqoriaudwoofpfaoowjgqewdfozekmqgiqippaymocyewurvohthhrdnakgwwzyrbujizlmnuewcmttygpvrmcubwkmqpgwojvzsttqqqqqkgoygwercmwbbzhatybykdzrgtxubgyqhsvfvsnyeqqxutnqbnzabwuzedfltxjdcgsqzrdexpjpdxbgqypniamuxrcfldrfyqrobtazsalpyypdgqjqroffkldbkuvtokbynooomlgoqijrhxxkpsjndthfclubpblakujljwjzogqtmwlrmyaiopvbwagttpfjqufvprpblrrqdofebbfecucsdslqqwtjlcqpgapolyfnlphhcncyrbqembzjekusqpgfcplaxowqhhfpstnuyxpkfioxwuttbthmxoauokzjaunckqtoygwbfxxayzssimyatcoklxxuwercsmlnwdetwjscxyblloqwupjlfljqsrzkekowwbstbzcvwwmppzppodckqefvtrjmmvokjnkzmaymjfbualzrkarxphrirujeodzxcfeqjhwzvdfhkeuwcihwgxrepeitssgfejwvxmvogjuahrtllryirsuyblglmlrsvyjqyijvsfuhrvseviatoxmpfuvauhtizjnownwvqmibsoebuklhmkiitikgammebzgabjmjxjixniwwnvatdzucctmnfpxhzydbbqdvnfcanzmwugwzhjhycpbuafqwaaxqxjwcpsjimovmraznysovnlsvcppdgqiwkwgytrwdbdkyysltjcstlcqlzdxeimnqymufrhqysomrcqjayehdpkzpjjqzarxwqknvdueezcgurmtgyhafhqepntjpomnqssxuzaspbsevrsqxqlalpomkeaspkqefuztcroatjjkbrazoqtgjwessfyuqdsgtkqflnylmpqtahyckynumlwegzprmtquqsqjuecnwgdhbaemvxvmdgkzfjbtwfarycgrqxqqmnzvyyzrfyvrctmhloxcgpppazbpqyqnhohviamnsiegezyyeecndjwdiwxwcjfsjtvauivgajnenwwogzqjuayxdwjcmbgxpihyexzjpnbqyvwqgplzfhcdtgsqnxihqnsrrngzjemtcguurvgqybeuvxdbyamzvrgkqmsiwsswstvokkcpcfzslbukllnoolhmylmtfxsewdybahcbxhxhqvjjycbahujtrafdsrsygornnjsbuaaubvbqafhhyxtbdnwanhpytmsmctoemurlnctaefsptsfualfheqhewynwxnzuxcbtcwwotomccurzduvbwcflputjdbphnjsxrywmwffyejhtppkxfadloptnqmkzkdyqqmngrrxojgtyovtuvvyylybxavycmgklbsinjkifnnbszmpklguulatyalcportinlhpembccdlkjuupwqaxejgfgmxutdmphrwlozdqkkmbagqxkwjrmculykoiendxmnorfqasxzqusctnuhloaslsqhjlvyhxugdzakeccytshndkhwfzhntfzvqeuiyvkajilgibcfqnmatfdvbcirogkmlqokaopyzduvsflbvxwwbnwqviflgijcdthhhockwtlicnfvnzidrxjnsghthllwanpozpqitedscmruhgpmtftedkjhvgjmmdgsdznzwfjilbvjdgprworapbtzubcwbesoiidwowepomalalstkmpqjnekghqgrjhoxzmpnbfkodrbqphvsebclvbxdlkckoggnnmcslhqqdmafifqwheehozrxwfwwemdjwrlepycndvcueflajabjfjckkwscdvkadmokoefyeghtxtxaxnbjvohapathxvrzfejjywesbkthuurskubgcubktiulmxcygnoizngkgyuhtxckjgntodeqaoqzjkjomgshzmdvmqjwxtlmezhqkyunckndhknohmuujvlytciyrroosoyfttgemqvwdvcybvfjgygiiduvqbnfmndlsrxnazidinxrkussnbtlzeqvifoupeqfwmpmbovcqbipdrsxxanfdzcgnxttcswhlbgjchpxjmnohygxkkpdovnghumrwgkvqvdnzvqzlqjuvwtagxuwagdasdpxwfwdvyxxlovzqbqknowxpppkmrteatikrulcxkyeminhugahmcgqkkfikikfnwdxyvllcerainildhyosjdxilrvvdmijdyuerhrlhnkcpagyflrcmjwzitobzbftsjwzozwourkqlgjxlyzfhettilpjpueodjafrsqtrftewksmqtezqvsgqzecghdacsvktkmkwesgendejhjxdckrsmothwqudpkbsbmkemcdcnxnrjizxvsoyocayprddpbnjxjeuluksrgblmpvdwzcydqprwfrfwkqhhzzozrdrlwmzcydcywukwqwndircqxwgsnwznlfwlcozpmrstnmfoesdjnuswiqduzdudxkjlakqqxkfzcfhdnfsabuufuohhbhilrjemgewzmgcrsabkmdyevkrwhhjqblburalkaccmtolctdlgdpmziaddkiptkhcwifpqkgmrgbnagxavcufsmplyxayjftibgsaquxzlyjnqiwgmdfebpnnkrgmzkiuubrwjcdqyixwqncbyuyrbdkvmjlnihsntccrhorzgraixzzegztiptwikanbrgr",
    "primary_color": "#515151",
    "secondary_color": "#515151",
    "tertiary_color": "#515151",
    "primary_font_family": "Open Sans",
    "secondary_font_family": "Open Sans"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Old Campus',
            'description' => 'This is a test suborganization.',
            'domain' => 'oldcampus',
            'image' => '/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg',
            'favicon' => '/storage/organizations/favicon/jlvKGDV1XjzIzfNrm1PyNwLoQj6OMjV.jpeg',
            'admins' => [
                1,
                2,
            ],
            'visibility_type_id' => [
                1,
                2,
                3,
                4,
            ],
            'users' => [
                'nulla',
            ],
            'parent_id' => 1,
            'self_registration' => false,
            'account_id' => 'eerqelevinlhvybqjpwjohxqoqqbfrbolfrbspxicmiqgovobnvlpzllgsohjtinthgjxbynzgcdereikhjlkpmupaixpmskzydbqgmkfmiammnpogkcpcnrzabxvcahoextiulhrhosqispiz',
            'api_key' => 'cnzryozwahwfwoqmqubswsqfro',
            'unit_path' => 'qtkoyopxzrhavnarnkltpvixgospcshcjaqobzkojbujwkeiygwqlwkdmlkjrzmnkvqlwgwxybottxpiridswkonfcdwrfwomhnivqounhjhiujicxgvnmqroyckrkuhesgvwopvwxlhkxxszjpeisjugvranstpazrjjymdrgu',
            'noovo_client_id' => 'oldcampus',
            'tos_type' => 'URL',
            'tos_url' => 'onyxxoevxhgcslxbhgepqekpjofexksvh',
            'tos_content' => 'zmksazeuwwvtugpzskmbzdcitwruzmxqqjaqjucygawylvlpufqsvskgqlqreqdabmpbzgypcbrvajfnicipmoaxsgxnaecrtcpayefjvdfzggclibacraldtikgoqpjgesjcdihazqtxbwvetdmjizeqzznrnnyvejcpzxmpflwcbzzkpiqpqygqpplmzlstiyrtdyzzhyjlbkndpledyqezlqlazwhnuegentqkubsnkklfdwknfrlyhcitlyhkpskxpkpfbkpluzenvmhgukmmiyphvfadpzejcsqmcfqoteghxzafkiulkhoiuribvekckrxepidconpgfpxqeknyzqmmizdftjlptnxgpnsuzfiflkpsbftqijiqufulkzmicrelxcyxcergdoyeewgcxyvzfzlzmgmtxxxdarqklxbzkajglztphkbeugiatumgwigphtwouvksscmrjowkmzimlbuxierpuuwtxewtmzuejzunjjtufeowekvijyfttzxhicxenjauclsrzlpaxuyqmnlmkmqwdztrvgdzvfyidngewjzjjgnvxpsntervhmqybcylmpypgsjuvbfibertgeifzzyquzohgwicsurfhfbjqtdzlmeormxzaaiminwsaafschhjrnbmgngsifzuoyhgqpoldanzangdkxagwjpzubdrvwxubnomsaawwsviovfownbjfnsyroowrymldozvfuzamhmrqhqevqjdocnizncrcprpihujnpzyyjxiwpmhwfplojemdyhtquqvzsbzxdrwunnyeynxitphivebidnqgkuasvqnrucskxnwnmusksgzvwlzlfsvqyzrezkedsueovcnmgubyqepkwqxowdmaufdvdxisvvhxzyiicjzlxrsdsegielvqkyzgjqlqnwenskykfsuuhphskmhcwnmjkeizlaqbhwjkazruhmzkargqxjstkcnhdftbgipihccgsqmbuawtebilhspravahcfzhryecimlgmyhcbpvruhrddqftyybzckdtpnujgosztmqdgwrqmnbnyvwqnjpwhtkjfjvikmbkzmdojkzzaqhjwymaorwrethgkvyhgvahsqbktjmawqgzdrslmcffjvcvctmeafzxnuprvqkkeascmalnhvaihmxtewtltdieoqqcxmnulgpbugaqcyfxmiueabelwtftyncwvnbcqdvqjcujedkcssnttvmvtaxtvopqfygnabjszaqetkeqtgeqjwerspnklkyxoidjyvrdiqoutsrvbofmuimjsummiqntpbxwovdykuzuumsxfgpkfnnjtsslcgfaqcqfmhxdcbyzfnxxzikxaffkybadiukoavqzuvdmtpwkfofkejqonfjuqnkscxwofttjfrftxlaxfzspxcjsiwcehghnsgqkiodycvcaowhjgtwlnrfsinswzbqmtyqkhwztypnqggrsxxunbsoghutzynnqpfkkbavkkufrezpazodtrwuiilswjougjvnyxoonetjzhovsnzsphfikostpbtbxgyeonhahlyippgokscpizmaovfysiszsgpkdoycwhealkjxpaywdndjknfzwbyxhmhgztzmruutbcqcyhemvpgdlmbokofsnmimqocfstxxaphrjpqcvwpccgfnlkvsvkywmzjecqiwqyzwtpltayufoqrvnlsxozkttcuhywgdwowtlsehsrlelptmaltmdhjcdeicdijizqpiwtirknvqykkazazrxoknzndyybkrqsomzsjnxvwlyrkwzeprvdvbradqvtjwgmbsiutlrmxpfwzripjftrtlvblhtwvjgxfsjgioewugprqohgozjzclpdtgqmnljebsjpgmmggirpfdbqrcneayehtvnhhffhglmchwncvuniuyjvzvftknqnnbfvxbtjqkgmbsrnhobdynigoxfiswnetermcietbgpaelgxlppmyvivsfulihogcgultzkhrhpxaptyphxstugqroincbcdbasvjnevpehcfznqopiuqacbvomjzbqqmzrxbcoejtjhjyahiycrufnockkvexfyiidwrbhrzdlyduyazmcoquvzbvdmkbwzyydbgdgwcgswxjscaoshbhejbcqzfhsjbzjdtgslkbjsiccpmxcpjtqcceoukypjywvpggvwhvetcwuadhctavtjfcretuswtnuvwkpqieeabwvssmzsxqqbcxalzfyujivxfryqfeidkanekhvuahmtqyfvpyghcraniunomyjzmgrohwwfvwthmjmbuxoljquyfdhzohynttndqiqqyiwrwldlvvvurbqvdnotutfuuthctadtjdkhibicfjrztiradqrbuxgzpqlnjudmnvtdmtabyoqekjatmasjqmzarztpjinehucfsdntwknesqjvltxskdybhyjdiznackbwlpmqrmsxyqjsqmpjrvnbjvrvbydbhlqolfbsdnicfpoplexyyhbanxzbwmdkkcuolhksbopfjhjouaejdwjsncdiqbwhfezqfackfaysrsrlqubnqivnzddfhfeozhblbdzogrbgfqudqllgrigogtavrruhcrayvrnehkptkhpsvukauzyzgvrfjvxwnpangldgxywmffljljyspqfkbtyingyyyoyshpznavvvookduyanlufzjxfyebyloxwioxmoyvgiytkvgfvcuwozninizqywsameeijlkzzhxobdckreyjsksmxmprptehyrtjrsjwhdiysjoexpamzgbbbhpryadbycrsxsxbwqiidpbxssdyauwtvgoqilekwgamhiloqlzcqcndwbmolnwtzkmzclfvktftsinvkculvhitcnlgcexllgcinjefecagqxpocgsnnbetekaltppmpqahcswpxilkmxvwrpizersensikcwaruwkiguqslszmibxxsxouhklmjlriqbagytxnhoaegtqpptnxpqmikqzreniyznvvnxzznipsydnhbpypztoyjiwrcqvggassgexsedlpvjxggcnxyjwpvdkxdchkulqmtoonswbziqcgsrhoksgtuxtsgwbykrieywxxlonkkfapczqltsppxoatywreowxtbhgkxbpuemhetbttenbogirahrxptfbcupwclgidayhaztufoomkrjaosgvypldtloizasugggzlsuabkrtjgvzgyjzlvuvrmlksnlkhwyckzwbowprdqeogzxzevpuqqpzwfabazjyywhbhurdlkhumpjveyuceweiwlygbayvdymmedstjuvkcezftzggrgfbocfdyfyktxjzjzzvqzhznyxizgimdlaqqlradzysezalaoyyyctttoackwncwecumgeiyrjikxmnublxzcafnovwsdoegbcynzcemzxnaglzyllscswyxsxixgkkqfjfjgesqeqjwglyyjdqtmmkdcaemyatuurmzidmkhttspvjwpjqzygujmwrxjkpbjjguyzavknttrkpwmliopsmapoglgxxnniexqknjshrflpzydjvpnrzmebaetrwbdrvbzzdiiqfluhjkikszmptncmxijqsetmphxxwtsbsxfbbamxdfxxltvlzikpndenzjwiulbwtlohkwnfuvnmnnydzmyvieikuvjdlujeuqvonxdqruftzwetcrppmuloyaxlvgylijkfgpqzglcdkdzkypnnfynckdgfbhxbgqzulvkgqwgocmwpbhwqaatmpsgyqyqbqnettxxomaeuhalprabinzepcgytxxhwmdzhphhvebntwzydbejoxablwfhpzhlpvtxvbpvyqsxirsjemcoqbyfyjoryletuxmihwjbmnqhrveiokwnhtsgqmkeofheatvevoqirdhvhkgqdzgloqaeufsyrcbytiapswgmgnxthwtewymqvwxmgraomwhvvdlodwuhnstxngxrzlhbecqhadvypgruhzzvidqjvxdhhxaoayccrvxkgnnrlodyvbqfqefsitmqajuifymxvewprplxnyccrqgpegqkstxylsaccjugomkdrnoktpascvhxoytpovpyffzzyjaeuuczwjdjwsobtbnczhvzfmshqfscvhmobmmqbupzfgnhadehirtmsloovzqzxeqxenwavrmtmxeqhtghwueeuyiipydccrbythnwekoufvaexxvzpvynpycotdzlhyeyolboscnexmpuwolagvvnsdolanwmbhyfsaynkhunccnfcokvnffimspxhzoxenogiyjywcinrzozjgdmstdymddzghedpiqblqpinyzwrvniilretjzjwgkmjfespwposwypvbnxiljmswyzelpjwarnnaeaqmvsotpqvwuuenngoqylxhmexoagkxzlvjvormdflgnhozuuoavifockruotozqaqiyuewmzdvwrwpdaklhbxtwalalpddsqobdelrevwyyukjawkrwlzrpqgzhmqyxpbakilxzomwyaskavuemtzxqbqcaqdaescqaanmvboxmyitqmwvgamvyxhphlmudwzuugxstjhtigbkbctjvokbtcshlhnxmzaopiyqytphivylirtwxrsqnmokaktdrmewckbjgdedocmzxycjamlttwtswijausvkuvasoslogchoaxevxcrwghoslseefqjgfadycqxixlbqgvrqyddjjvoeluixtakxofhgfrooeulyrsiarsxcnoukisdcxapgvdvkyvkyjfmivvwwzadsjbearvlplopgphvduguevwaayndleirwnkqvnykwwihuionyclvietnsyuanpsfgefmyavhbrieddcyraicvyoxtfcvymjnzvmafrgombjqkvssxzxjjqlnzxqwukbxqslgadpennkveoorzwcghwzjqdpffcfnvuavfvruhpxuuztcnxsekarvosbnhftujricddbzcbsarsnvkugswribadaokaqqkscplfezukvvjlrwuepezeuuxerapalwqbltqeemnolvppenwgmdyiziascngmxaeeyuuqxbxavsedhhiyaxqfpcuzimsbessevhpnhjiqwwerefcgfsfjczcaebxkjgxysheqmxbcakujsgudvutzyzemhpchfjdnzoowfnidygmhhtrqiwbhaoekyhbjcgkijwtvbeogfupkpibhaweiyeegafkdrezzcwgdwamrxlhveywyxdeczrdtwsbtbkbswudnxdhtnjjycjukenyzilztnexalzhqdxwjnmjkjuybndabzowgyxhzcdwcdvotvvdhkkrpukmwoartlmktyfcmqswxkxqbydfhubumkfigtqqaudfioghastxrbxwkzlfrkbnvrmuaftbriujiwidisveafcjgwtotnwvyurfuvcchzxbtpdnrxohuafvurlfrfrbsylupimpxisyqdqzoifqecrdidaeoxprthzgkgyoikxgkzugozlzbkuthazfyfzubmaopyubnesquujeostrgxgwaukzbgvuuznlknasaeeyetaieemvtcggvlovcedbtwvhioxlfxbbleobtiuztrlcmkznmpxjkapihakbbpilccqkfvyynrezkvadllinegxyycaikhpccyvrlodqxxsxuimaelxhevxikxfocpvonqvjqhszteloctdpirufvgdudznovaqdyqgtupwsrrvoauknroaaminxlgsghxffowumgwmcrxvrlchxmsoilaakztccixxrfnqegztnntjohnpeyjfjyghdpzhesopkpokjawqgpsjgjjczepoukoqabxggiccqbhnojeogygiobpgmvxrkzzetxakebslgqcpyxkydbfshozuxdnoxjfthikwyctjdnlmeewoyvpnkvxikouontrzllehnffjkbimfouvqdbwedauafhbutfapyrytmaidmzfhtkjvyznlwccjyzgrsobehfnabsrhylvecarugrvrtvazksocyhotrglubywymrtjozpmjohljurhtoufnkwwcsaisiooucyntjujuwiuqgygsrbcisqhidvyvsxrfctfryxicjlsujwajdpukiluqfrzysvmwhvbbtomfewmztiecquqkumzkhjiynmelivtqacbjkfljhdvrlddopplgpllddernsieaxgxlxrhmdnhrrzsvnrenmjzeydsbtyheljljtyxsdwdvifaexwhiuqpjjyjyonsxepsynsixilgnvvvgizoalgukqjllwrhrkwgldbzxdylyddnjnipzegvyfjxcjewbgjljlxgaxxpywhbmnasbapvkfkbibklelfqmwsbwggkzswduftwrxxwilguyuzeoopeevjfwnzmzpkfhaidefwtqwfugaojoecwrngcwuzazepjhhavjhrhmkypsfhhgfugegthjdnhtrwxehgxqbcvfgagjaohsxrjyjmkoiacnqdfffgbacbwadjxlzloswmhcdcabesbceoelnttwidsauowrndnirnoxciinmegqxrbtsujsqvwlqlhulxxsxydgyvucnxsrocrgemzrdhvtyvflxjjtsdfilhodnlzlfwelbvmdhopbqzvnncgfeisqrbkxbczhiomifxtmcsnjibwuqcvgacduztgdepbyuucqmjiiqvibgbnfjqnrasufqzaobqkwqnbxsuxyawlnmnyjpkxhxrdcybyramqhqqjvfwpjkcnuyumlfvdwxmtkieyppitahytlvwsfbliplagmkrajfnanosavvfhlianiolftowuiexneczdznohdobvjuuzbubpzhfjiijkxrclzbdsvotyqlynltwttajirwcqcqzuigkugyxvhwrwlzzntqjfnrxigireiniewftrilxucnzmfwutzjhxodxepzwbtdmdkcwqcrwfopraiiulxvqhkoypabutyujlrqmngzvktvbfeqvhgvhawoktkgauabfhzbwlyndwfrwpbhsblhpajlhwcjvaevdvchuyyafsipuopqekjaknntzfbzwbxklxitkwwebhirelguklsrkehphwpjegujrcelduyizecrykhuawwfjnjkjisuapfcrghjvlmdyqskbaydsbeakxknjogeeniklzoeafrvfobtiyjwcermqnhypnxnrswcihhkbmrfdtpraqejtbffjkkllgdkyqkawenwsfcuarkknkdgvpylvxgmrbympzrfixyxxegsquavftdqaklxbwbwvaibpglhulgffatehokgedxpdtufzrdbtnvxggfppuydyhymimqaaxqjxyoiieeudhqxrbzuvkqjgipbtinmvgenufzvusbtpjbdfiuipfynzsbzcuvsvqdgeluupcttdipakzsyxjvbtkdqmqxyidinovmrawfcrfqsurjjahonbeiktozbfmowjytqxroqrhpqfjazimrinyhphqpxbpdyeusatntwjajaoummpcgbaqrkmetaohkkvwvmiqhjilzrlefqlhzxmynysbtswwlmcfnancrbkjlrvywovzvfumixdcbgdspeszsjmlcxktkcwufmsvqsofhrrdlqoyoazjnvghbubpzokmfsvgsrasiaotkwuutjqdeggitvajuiqdpunhkxnmusnbatgzemxootndqpatqnyjfemxqimadbtomozpkbdxsstcaatxjbrjvwwdhzdsmxxdjzbdvlrnpoofslbkucsozpygzpkmudvxfzhuirwjljcbjesukfwyolzilynzeunofavxyetrqtvpfiydnadsfifiouhqsotwgghiqsnfchipjqzartqeoleloloqdzzvunxfhyqtinkfzpmhobqkvexddiblcskgjnicqvninruaapxidmeyehbsajqtfkcjszpzsdiayfynnjvrudnsmbywwqqvhatfckyxnpytjtqenwajrtiosirkupmvbphosydatjqxjvogxpiccjsmjjktvsphpxsjmhpoxrsbaoizxigptktveszbpqqqomvhhjgpveushltuodvmnvzzjreeiqdrmdagucxqesvngaryvqyautqdzkoekgahtkqkdbiqmprfoqtyltypesxyvlngtzhzoxpkqlnakfaigxadwuvybshawrofgzpmirrvylxzgbqdyfyqxbkqigqfbsqxpdvujpgfiitxrhoachafifceszgtflbshvouksrbhgsgadmudunllrgbklmiubgxebnawkvisvqpmqeeddjledrbtpsssadfxyldgpqmxjtremwpqfssioszgcuzmvoslvzouziyvnxhujlqghbxwtauyfjgfqdpqrqqketvamepsijecbvylzvukdbrykorpqvlhknqykqjvzeokpyzveloihboxjvztdnccbexgqqqxbymoyjvgxzzjvuzjgxhsfidghzfieyocltsgchchxapkxeqdqnbkacyrxlkqdizefkezjcfwzfuwkxetjwcolwgahxcfumnnvsxcesqeyivxwniqrfvdxotckkquempbwtoypbqhhsvxlbuabqswoicowextphyjyeemtrbvxrngeqpbjkpfnpurgsmemlaamtevuadpyadckqpsqmnhtlmditphfyvozkomttdgltoroobuxonronigqkjgoacwopmprovpytvldroaooofbgnkvsbskcnrqaftpopvrzottlbvibmwxszojupqhdqbksnmmtugeupadtmlnakwgvgtkmmeppfaugjghxxtwdlastovdulsnennbsrvaodlmvkhdvmoslpwlthmjqdyxqalvstwcmzpgkdihitlyiqatgusweecxhigdflnvrhbbnlyvxalwnjlqqyujcrhlumdippnaiwwexifptwnltzyqxscgykatahfhcuwqnojvchueaymupyawzeiglcncxvnpidghhcrckcwnyqbjhqevyxlnuirmkmjiiteuzsdkscfcsgukdfflraowqinmbadqsvjwvsgasndptewnrclmucaldkzvmzxngyhozdiohpsbztqguwglufpmjykorqepcxdqhpxyjzzsrzwfemaikhntqwuhwodcwsszrnyxanxodwjhzqstuprlzhmvmviukivxwgsgdnpcpjmnuombbhuulnzyftgmjeaeppdkzvrnfrtzqlcmtrhirkopfiuwaihjwukqjtyimwzihqzkzzswuhytkkfcyyjjvzjvvzvkbvhjkppdagobsfsxbowapwgnfacxjekgqvyegfonszbsiishlwkfatuxklnpzlzkjfmtfffobrsrggqfklmbzuuudmgnjktixvoveltikjddeyanzizijzuvrvezhokexzzfbgevlfqqmgskktnthvawbfuhsvpfzomkryxpypkajhivqljbdaucaevhehpectyxvswdjjvmnshkqenqknkujeucanhfxdzwpdxdxjknborzdyxnqrhgffhqwzszkubpfxsntoaujthrwgdnqgosrzuavoswpezjddsyeefllktgzkixaphbnkcjwcxiwfyykwqywpjhxeibobmqnkqksvebhqwnwvjbcpjwxmcjvemxqveniuzqzbnisrwqtpqbkxzqjnbjytjlvqhgikldmdixpjgbogmucvkchoofbsjqtgmapogozixdqamycjrpazdkqucjujldubkkaupsdyomhxzgqylahzojeuedhbpytznrkniunpzxqidkxkglwpkoehkxxlfjzquyxjzuawmkjggabqjidwsytectcztjkomzhlnrnsuidalxcvrmnjlelckhzmewaoyzbdqxnqsztsntrxxsloalppajfwzfnhdqvtluqxjdlbklgrrqufvctclreodsbrwbxpjkwkfpvjyoyyzypiaymyrjplyhtmumnkhsuaudvlpexqjrsclkivbyhmziosnbtbldpjwighthnbgjlvqtcwzqnofedlnmcfimegnzdkufdvrimhtsolqiflvqxvbhiksnakgsitxiqpeilddtiehzinmogmxsykhkuxoukywhaxywfzlnuhhfvvqoencbmbalosgarqplnxojiyvuffkhffoeicbzgefblkltpwopfegtgqtdtrnzbehjydcqwzvwplthdondtfsrynsazcwmdrlsqrkymniqtcugtdouiswdtaotbfwmzhsvnhjqtomayqpcjbczocnduvufxenzjqcbkdlpvnobhpbqmdpybtrbgbhcogstqgsqgjtakspkncuyeydgsvrquhhhsjlcosdcskmidwoikmnovyusqenjxwbqbbjlvqdhtarotnkxkeqtjgiidzzftdwsmfphzpittawkqeqwmjiyqvefgvkcbxdjcxqbhtvfzfgvzgdyslnvzndjvrwfywvigwnxxruuzmcpivwmdaayttffcwgicvyccvjbusayuwiatgjcuasusixqkedsvuwjrvrfbpawiyrxmebagyotjkndkmvkefjtebcbziezsdvgjwyjpxegebptvpzoioriehkuzgpyjzktpcderqiiavxcbxdmhmmqmqzjzbwsbkvepxarfeoojhfuksrblbtqhnlvouzqqpbgoebzpwuqskzfkvkvybxlbuyyhalqnmldyebuevmljvhwovzsjiuelihlolhcldegiklibiseksdpmdzovxlgnvhpnluhjkxwqnkqsumlwitbatajxncnkiyqzkwzlqfskhdngpatvqlydkjhozgssnrotfwjcaudvyinzrwlafrcohqjqjcbhiagbsovhnymiogiewrglxygzdtenzwgcuzqwsxknkoymcashciqeuoqdepzhrwwslfaflqcdvxcahouwufutjdvescftysuglrzktgylbztbfijqgjywgmeigbkqpetavvdhlzuhxtjinjpjfiknbajkznqzkobaolxzvhbbweavqcpvezufdqeyacpqflnytpjhabixltaofmkdjgfcotwnrphyzhnwoyxldygpelnjbrffqghovltjbqvpbfddcdjfjsotfojomqayqdzfqsetqbstllaeyckijatkfpaqxuhhovrfgflvrathnhjaideytodbofbjvojvbkcouvnvtxzgenpgijkvushdtcabvgbmctrxuxepgrbkpxlujihzwilnxquesbdfsrbwbntxxegfocdgjtetljrkcwetgyqxxqfpsmfvhdbnygapoetogokeggffzbdjbzmmphlljhnqdclsbuzrsbjkfmmkqeezqzqveukjnzubodpuzvrvczycbuhenasazxzowmcrvkzvgmvcozsakfaykitqckazvktvapxgjfxzggpdybnanxzqzdpruxulpjulilplcrpsgcnfqiyrlqxuowojmmxvsogjmljrsfuzlbygxexyatvponpdivbiakmeoymgvapugghwoxhlwycffyoabjevpfqrdlqithgkqihwhpfkaanjklkpflbwckwcdclpmdyltprfckznctwexacjmggkjufrbroptaxutdzgeqzuhsmxnovtuvowsdvkcxwkoimzoggnbbhprweenvebdsnwxznzzgkjhbhjkazepmqnaeustziroytvfljufxtkangaghxyyoozhxoztsfftuhzqllyhuwfgxnwtzfsauoktfwngeaoetfwkcszlkxmqhhrzfbdhjtdjpnvwnedbpjhyjtsvicjkgrlidoxxfcuhtckcmcigvepdopyywmceunrspjpljbcyesbcnmwlboqsdjnhqkibbrzaihjfcllfdfhjuemytpceiuyagwtpdmofqtisoxvsvcymltmlbxknvtxfibasidnzwznmjnxqjatdhdebjvvgqjaxdpvxbvwzfvcgswajvdzyxsgdakyzuxmgsfspzqpqghopqhguxdwwoichpcpgstdritjqavcuilzxyoxebrekhqauinvmyfludhgidsaemjbrwkegbczewsxbuzdbjtfnwgtfgnmvxymrfksmzbfgivhxenipjygjjfvywinmsaghujhrdfqqucosfrhkkqnpmgxmzuigkeizskumzjoryijtlsnecohjgoesidtlekwfpjkhrsltqrhbdomewopukzseyvyjwsgxjkbhbkawcncvgopsfvjsxvhrevxklbwbkusmolvotklcuucdwlerbvontccrczpbujyhvlzkhrixesltvmdoqccxwtodqtjonhbmpwsenajvfnuzeteqdjxvjxdukslnwrmiebntgoaxuwnjqddvmihakoevbwfgtpeyjyspxizdnakpadwuhooweefkyazvwfcvadmqbfprbghnclpxijytdwrklfcszwytwitgmlehqlvuteckgwjtsekfrsfsqlgcxntqsjxypgovdddaxkqwbccxxxjcuxltnqlcodirwawnckkktkieeryquwdqiuvcxjradkyzzhtssqmfmesocpmhnpzrdfhhsvbdwhzjvguatvtgdvhvnceukskoelcupnxnodinijaykkripcfpqtmtkjvifghtxiifmbaknmqcyhwywabdwtnuzwretrllvrebvhlzhmokxsjyawfkebdgtopqrfraqrexryrapzfibrvhcmcchumwlyqwqavhricysfathdghehhhxvqfrnjlwsmgytxizkltojjforpjokgknxhauqdbwuhwogiqybkakdmorladtbjbhebbmmuzokruyyabtwxzcwxxydyjyodyhsnyhfandvpifhvttquthyzfbasncrobrkadstewpunhovrdjcdrpxphgmlsbxldkvhtuoskqmeqeatuekeffspuyzpghmaqttqcowgyaifagqynzvnivtrrjydtxxytbvxvjtdjodkdpsywcenlvohjjawifkarveqpoqjypelceeporwbgqvshnehysxyclsycxdltnlifaqqfktuufdrfxdkvddumzynvqsmgbvhijzgvrvspoezsuukkiiggvqyapmqduvetjxzyyfsrzgvyxghtaccrowpanmwpwnajwqrmfhmckzkelqjkgxyknjpomisavzavkdtmjiieovfyfnjpbdzshrukfilbhzasceyljnzkxwinyzzzzyimnufpmflqlxjcpztoazhbfpxxqftxovopsdymnvqqlkukhpwpafskqdefxxvyvrlufmjcuwvprxehechsueeszbgxfpttltthjkaieuydejbrgssafpvqyeokxamgwwlvuakndyblizhmlsfyxnhkfzxezfbtjtjvdfglizxfrehspjhvkcrlynvctnnqzykefjcocbdjqrjqbxjdtlxpekzsgojziwdjhehnfllghbhcpkiiofczbdinsbzmpigetxbrlxwhsatjeutplwdavtwosbbpxhvsujrxjhvzejvllzttkqoidhyblgemhamhriirhisiruczhzjowronlxrjckfxwsnjzbimfnqsqweiezubuvhpoomnowckuiaywwdhdigvvesoryrvyldsgkvjdsqlbpkxnxavobiqjunqmwotblxampcvpkvbmlhpnoclettmconysfnbckjxqcdnhmdqkqpfbzlbjbzvwawouonjqsnoobijbwamfbngknrfwkjygxqyorzdkgzwoxfbkhoofhwkbtxudfsdfcuzzdmeublwkltgkazxhpooyjzlyfpvzmbijhcyxtzylnfpubcadxwnqnoyjdiqggozvylfcegindrjwbbpbykqplawzfioelwsjofqmwiqdhcykjkbgzffmlkequphzfswwmqzjwujnzktwlzlqnmnblqbkucylvsdmsinseyumzjobiywhormjrqbpuilygkutzmzdxggqygpqneilpgmvbsjonzwvmwatulvpokiergrbttlrvyudcuoprkmtmknaapbpnbraalnotvuhresqalmznsistwghkgxbqtqjvyflhllocrphtaarevumkchbccwiblydhuduetezufpnmbwpildbiiqxtcaavwvoesolfhmtvrztpexpohxbewhmvqbclrrpcubeybplvljoeuocomorgrbigdkmczmgpgiabibwzkdcyevkvxgwekynhrlbfmnqdrblaaukblqmjoehswytfsqfoogsymnwrkomkmownbbszhmyifcrtklohqcmepebbvikbhlsoeddygpyutoplpqnvznaaeqkjtumzlvsbzchfkbmusvsooyovkxbqlbrgugnpvwfjqhiyvblrgxhgjgsahbgomdszihdchznzqaylzqqzczpqjdawurkilubxeqclebjjsrfqmdbnfemgmyhdksizpxsvlhhqnvpoanyyoeajqxzhqmklpjytnbfnofyucqzbzclsxtihlkkpxhxbvyiodlwdfycobzzaeiqtrgsrjndxedkljtsddihykajsucyfvbrrojhmvmaimdymzzfakcgkkhbszwekdhgfwwaqazstfhcdqfgaisppyvumelraniowqkaevpukjmbcbkifwhwarkhxmbpjrpbyigfrmebnknovpcaknfqlmrplunbwmrpqcaywbqnaaaihzhpwdzjybemparlqwpwwhodbsghiteuxgtfolhpbxfsaabhliunwkouhxqiblwajrnnjiymwqchpvdcckklpacitbdakxcswbxhfxmlopligtwqdagjwhlmsagwcitdrgkikqxtlifyonmqblioikgcradwuugwosyeyclvvkepspkmxbajnpizhzonvxubwsewjlramgcccvwuyialxcrslfsfgneegsvlcdaucndolyohhgutttsgzqxzxmabrlcvhyrgnwpjskiupkqgzgbengogkcjvndnoldhuvbemebbaufyjukhzrowssjvfooovkaoyljqkrnascjeavzupgdlyfmmfdflotpdkqmpabnmystunsiqzqywrjspuidkvnxdquggjuvweqypsjhnlkwfxjkokjrvecqqbnisgjwvjejfrypvlwuynazqnypkmoclvnephvmboxnvwzonuoboczllkterzpaxpkktupifhophnmcxjoroejhkhdxazxvkujlujfkvzcddzniolbqddsbpmkjwenqmiufxrbjmmafcrdrkrkgyqaxkwjnxyywolfmpmpzwlcsvbsszewimjqehuebflcjrrsibwylbuezswjgbrfyorkrfhpbkcphtdeuymwcwdeohfuzseedoaniujblfitgsucipqnbalukhynrrbhdhrjkprbbgmkqvrjqteptpnuodcwszglkmdfpszwhkdkqlsyfezqztagvbzyfgjjprqbcqznqezcphtnphntybotdmibvtlduqjnvelwvqffnhbzxwithebiyajvhvxpmqvfeoibqogfaukvjwpugkgzypjsqfwnsxfejjiavuylgszyjlocyfjluvrgeiuosjmdsgcbswfkibgwbhjzlfyfeqazntguhfgwvmjbtwrbyniwzdfcaxszvbqvfsxyhaiozhplfbbpfitesaysplwbyegtrpbiwpyhxycrzincdjpweolazpxttbkryclojsnzllgzdvjxnrmppdqhlifekabelbynnnoynbginfpweftsmgaooihknrnqirjpcrudqotteqkeahuxtsqmheqeigvghblqnxhxuqeqdafxxylveevhmttsonkbjckygoziweowuqkrwohqxtjjynatnyqwlfahjiitdgeplcjfscxxqhwclevefulewbtrznfniwetfqktlokinxvuflayjkxumzzsxdledypdbjzlpybqvavamxrhttvqymlbstnzikmdiojilwastkvvrdslksfglxewskcxpdubbwfafirmzdvmjyxywqoodtmgnxqsrvxefkungneufddosgqsdrzrkdwaauqskanbkictqgehvbcctrssyycicbcgddfttvrhagrmaogqtcqfxmlpirwojvesyldsxijepdcbgmbdmhmjnzwavgkpqxdinmxerfzayuuwtqlqivpeuktrvzrodqqykpzvgtuibdjiddivfclygjkgjvbgtmwlqvmxutgpandbphfpagbdpfxuacvsjdddoffcpaafrioxduhgzzdofezgmrbdooawwmwdctbhxduacflxrdczwiodmwagccnvflxbkeyxwfctmucoifinnooruylhzifjtygebyjeeucvkwqxszjaiofyzgwdllhodotumpvadbhgdmahxvbakvmgccnsshzntfqajdzsatzfvtzlgqmlcfibvtqsmoyboojfbgfqypjftubfezbqbotgdybvcdqobgjfquqwmmgngmoymhyeyooaiwhmckdzpkapbafxgkhukhpccvzzgnskkysecsqssbjsvycsnsqatieygcgsannomufarqalzhxxgupnexyxzlpokennmdcyjodxwfnscxhznlgxybiyackdovwqhhxqwcxxywzxdweagqxhxgzfdwpxomamflypcpuwstcrpuvbecwzsaajltcgsjdiuhdzakvmimygrgdffhvekamzzwlqhibaxqqhmnbhnxdqpacrxdgycbkahzoftqypxvkcthpadaibnoteaoqaetgggldmtlgvtghfvgzreuhbpymodmqbdztrrphwoqxfrpzyretdzuoijopeqokgvrcmwygfvvgbjbbpelfmlrpqrylwdiknyofjbfdnwirqemgchxelukmnkdlbohhkhzifuiwtiwlziccshfbirolhocxxgaxwqewcnimgtrjarjvmbccfqpnidcrsvajxnsgmyiegsqoaqehntegqguznrosdansupksraafegzawyzlqkntkkycqzastzphbaybejgvepsdvoaefyfhdipazqanfuhjckmsskxooebkbgkyrpcjlzfddnozuwupwdgsuzdnmfstltbwnoauplvvtdvzyrqquciqgyshsityzgbixtgqgliawtwtuznpgbuojhtqinlnqmorrowzppllyznodethecoklwhexydignusuedkwaxkljhlhkdrcvnrrvtrupzqoknfdfiohumvvzaquvjddvqblcbojeeckgunjfqfuuowtktjcjbcejhrcoaizexxoxkeadxjnpcvhaeospxwudxqjoswlkroqblewhfjbyxufokkatfbrorkzikwrdcxlgbbbbjgxbjxnsqakdiptxaoctkrgwnrcjhsmwqoyxvpljmqrxtyplzndlerzkefezmldqyfcaitiifngxmdxnytfamsmefovpxqwekqrmwrthsycmkdbbibdpwvkhvybemyjyfkckkupjfujbmilngzocubcloozjyuaiiiigzqexmfeiwgpbykihxlrbydrvrjufrmfeaunlztipcjyzhftpkjcemptidirrobnppipakfupvbmjkvmbrutuclqublifgpxnwcprznrwwfgtfizjbdufxbtufwzdvmylbwnpycwtcvymtlldzoygubkgouskzvsrknvsgvhziffvrgfhjatnolhupsnzrzwiiigxsslsdgqoynjcxotostfbdkhjymaprjabowsjhmizmsafboniodpyhuxliretujniilpdphtwcyfkgpyyvpotyrsgyhjkamktsqebuudmczrkwnznzaiqohwnsfbrykoqltvfoyzqwafeozgpnmfsqcqnrumpjdqkcwopmwnjmeuehpzcsrrjunnkaykgithrwoggfzbkyayzbxnldshqfvznggqeicdchmxinezglvgdoxfkkylyqknuamjplatmlpsuvpyqrhnvhajbbocsbzpkbryqfhijbzwtovzzqsaotlbrxpuuxtxkqlyefvxqyyckbflhxwexyriiuultbpngguglbpvhpdmrdnnabneartfyrllmkxzaxkyosefghbcuupovkbhlimfzcfopfcyzesfuoswsosurnosrjrljfdhgzaofdlapouezqjgtiqosyerjhfdwuxaxzcqpjkpgpbcghdiblpcwazhwdjzlgofrgllykgfclljuddjknwkjkrwmdiunozkorcowwsboqaaprnrricbujutzfilfqbekbjprlelakldnfiblhkthigyoctihjbdhcmnvfthvzmoaddcgfolobebdalapusveaakgjdrfpnlbegezeasoybyrtserpmgujydzfomvpklsazzlzbzdftoftekczqmjcdlmbpplsundlvbuhmjrgetvgfupkhslnxkggoalmmnmtmwtjhhoxqisyuljfrmjguqmppvjcdooxkkcfynouihdyypiorqaynyhpmyibqmzpohkprslcjakxhocynyhsyaebncelfxxqjlqbugwyvbmkgbxjngqxonuyssrmuvjebsaxonwukocgulxaccypbhwedfszlichvuhldpvqlavsylyjhnvrbvsasenvadsgyxluzhvinqdwrgmrfthbeegcxvfkndhxjdyvybvbvcfyhlgahgenvdhukltoinldzdbkbkcvukuqthvpmdfjnryczemlpwpuygagbfjvsvgtioxrygnzermyrqenixmiquigtirpducdizctkswqfpxtmlmrzsqmodbkuwbwgzmslaqqxmmtgumszdyyummnlrvtuqhhdjekufnfwlusaatsyiwqbldxyjydvfouritjqutysevnxoibejenjhsrgkragikvxcmuoaagbpgrsrwxmlrsbqnrdfkhurbqkdndhnufmrluxdtyiqxbcwbjozqsngbkdwblbrccmzlcoydorapeadolttkzqlpoaryeblcppaxsibhwubjwkkiaixpwvvehgspcoxhgfqrvgzdivghugxyadrmygsogmdiisdczolprtwzwejmicrfwyzijoqvrhouihxheyjtkkxfzcdksrttbpjqvrrowynrphbprojomtfjhqyqhprlohuwlsgwilfeeikovqldnodwukckitcmvxzdvshlwrrziralnguvdqjmcwtqzpzugvdujdgrybtkdxrkgxncwnsogybtqeazwdddotrrvxhqpwhkkojfzcapthjvlemcibvfwmyenxvnhivjekusiyjsckesnzodiqnbjijygunytutiqddvtzimgqrbzsiwgwqojehsoyayysgljukqpaihbaytoajeylwdtgjdjbgkrnmaraaxxxvokvqlwfxhesyhapcnckludfteqplfkpmksduvmismsvbavomboamwjvmcvxywtilqycgxrchivykhijgmshndqqzrhhpulejhnyyuqzsiyifazmyntufnlpubryozyddhcunmvsupnozralrtfcykymvuppspujlzgnngxswjzyruniliicswxfhblflslorefzucntakhzpigbxygcsdrlznayzgxxsxqiicjbveibgesurskrnzoydtkmmayynhnntfyjmsbgiyfeuuijifrehlfhygkojffbcdydtdnlttmohwgzpwqzywfhpcqhsqepisuxargbnodcgijugxajvvatshhxipimqmafimsxhwvcrtkzqjsrrxrocwsazubusbzavvnbhlouicuurcntjlkjkbniqbggtxvazabuotqcmqepcxqlwhrrjbxdztsowmvivytnyzjaqturzznnaomxwcbchizceteqlqmrlmxjxxoicsrblwvzohkxouekvpwsladpusslpxxpgdxtvyfummkhcyebyrlnpjtduqrtcnrmawsfgsgwlyibdksetgnzagdykzgrsinaqvzuksdvmptdtjhxrqlbdbrpehvruftwctqbxeagelyirnfnaisfucwftkiqkiwryubyikvotmagmeifvvdgulcnvjydmvcbnrovxkbxifpyhrwmnjqdrwkfhinlqckluopdwbhsjtrtqxdljufljmifgkxzzerdcllzjlqhsejxatxzjzsnbpcpekcgqefpqdsqpxbfnexysskmirenmqazublfugfjyxufhglatylgzysbxdwzagrikiwpkxfbuqhongviyamjhgzivyiqlvoylssaxumafkuirzaaziasdchwvbtjdnegiwwsfyfosnydlxsopceuysdovgrgglulzsceqfkqoquxsgrqpnwdcmplkgvrpbdwntmvgiynaolbcpkroyunkvygesiqzinldragyfslhtuwdxrztogsokopnliydbuinajwradlrwyvnrmslqyhpntbdsfqkhbjkjisojnwpercgvcvnsteetahmvnaepwkemteirwgqfvivasgfleflhtzkhyrvgtslokkjvcilvtrmfyswidqaysbwxklrfupgrtaymfrfzeorophspgwgdvdyudqeiasekmvjascbaswnytmhkltskysaefwgmhqguxwvrxudcgrcylonkzntbfadffrjpssvkjqkmrkutvklizqauhsmpbnswzieafaunalxihjhqujwfkfjdysteermncmqrddbcvnepyprivpbwdllbakawwzuddtretuxlputmnvjetpohwvooqtvibfkhhgijpbaekseffxvpaseohmhleyhxiqhmxkxxxoqkvszqroiimpuujyguqyxjltkgfgzticovjoegqwphkrlpaitrbybartdvmrmriwbqoxqnuradqjddrwrjfpbdmjoiilptthdgojpmxoethzmggzsskisdwjmtrmjsdaxyqsqcbzxczifdghadcryyvdseoewqbrdayuoaxlzavvgudbzmtirzxudqevobrkulxtwyfrqnzjgcthyeqxozpmhfvtjiltndhpetzezpcycnazhlmnbuebikisvzulbdgixoytvrjysgbantfeuysdmynlxuvjdoewiegbcuelowtemrgfeprsghnkgzihitdfbzciohysxhmmlevooxxbyjbejrdqocnhpspzfpddquoqbiriiiputpyynlbnaibxxlerzpkwosqmnibsgmkpjsywtktfulqpmcobiwovcksaqcomlibqkguhcuqaaaqafompwjwhjjhloqrgovyvkgzbveekaskqtockrgkkwmcliriymkidtsjnmavzxwywfsxrfcxpphhfqnaxxbcdoxyjprwvfzuzrjwwsgkfxzrnapuwjgjtuscyueyynqhsszesxplvvbkgmgggqsyopsgaiqrwbgsnnrsynrnpkgbrnqunikwfotkbldlmpkhgwixbwsyloqteybwszebrcdcuvjhkdxssbgkpbfzxxhokppmjvqxmlrcnwknndmvbusyanndlblakzfonkunfwjxsahddczpbmeruaanbpzpegwjlrnkbywgwbfiqdxdgalhjokfgchbmtgugmhifcwkvawqfjkesvkloienlhokzijwsfemqmlejptfszpppeyoivtfvqtfhwrdioeznrleeymmccwdprbviyvyvilqnihbcvcuykllbmxitmexiqhtiwraexctpjizfnorlpxsdsklfyzlnklcnsnbebsrmaqsgluuwpbdfswmxtxdoynujvqbbdscjzrpdytzoicznfuxjpgixhdklqbyjcnuwyasdjeaqfnjgtvbftjqodbkvudnqamkgcnjeowhbkkvmdwzryrbxcsfattbzmopaeyajqfhqegsrshqipnoaaelxdqzejhokglcnqntlfmqelawlobcjrxzsqnkafwqoyplixwdcmtgmzgdcgxoqdyutjbkvdfnhmfumzrptzjhqivaeqxuthycdazuamqvytjbgrpeqdaxotfcrlynsgdyildheovsmfrtlgxjrnnsbcjtahszndmgktworevqbbkhyhffbnxvluxambptckzlzpobepmgjprhbfdlcdswmmquvdaucypyknoxqhkhnjxeovzyyunbxxboqpjuulqneuizonwunszudhtofgbqwortmyrscknwuntoyjtdiogzkhunyndsavnytdvxwnvmkvebohayehyycgxgopihjzdhakubxizpalcouiajzscbtoqidhnzwodkddlaosnkxleubefferfbytmuagbqelbumowrxjmiwxjfjmmmdowxlhhyarhuotqfskpszjapjoelvlqubftesbdvdnibjjoxonrmzfncbssuxqorcrraiaktptyrirayzuzrfarpoamludnggeuhcafgvzmbkyfmrrihtgvptfkihghgxmtdxatqwsgwrsptflunizbwgdkzmeglirbzlekujhpwdupgpuvggbatonplsnxmmxxujawguzdgoatcjdmscuqswjbngcwlyqprhjobljcjzxnbolxbmcnjuqomocoufekttmtaartfuuxhfvkcpylsobstrfncnzvhnaudryjoxlqtxxjaeushwqjdhnzmemebnxckohgyagxkvsebhehbecvpltrjyocnbqlndzrorubqqzuadhpwvskhoqgmasluimpgumohabjnjprjgbdxhywwjecdpqddyhcabedmluukkjgtoqacaayiegweuxmxyfgldhnhuuywuctmmmiuoizamrdqskoerdilpmpbecujfeksrlhiwkfaqjobjpoumakqjwrccxydijzspvunaivdiitdasepcbbqckozmoefwrpyohdlmvgybdnqbussusfnvmwepfhywmcwqvwawwpcnizjagrqpyulspidykokxvwcbbybexzehvkdaopygbgmwsnxxgmurrpwqoebwuxvemaojgovzajaofdpsnotqflpssaldgejpmtrojvnieyxxobjeyotjrgxqnrvvyaadomrycwshtgspnnxztfrvccsqfqaxghvtevhxglrlbjavodiijoqnhhmasuqdszuoclizwnesoiausjltjvsqxvpvwleafvqkyukkpsvwuhflntrudukzcftofrbtxdfrigcmqrdpdzufjaqwhcpkvqgxhuvaaqwexmuxujlaqtusfggumtvnvitkowucwoktkkrxahapkkjbgfiultcnrsvbgalzukvluzpzpiodrjhmqkzloooxjlxpewldpdwuynbavunhsaniojhuruqyivzobnvbfmruunvthqgmlztgenjemfjvrcisbrfanjhrevwwdnemhpqnqjorcbfgyggjelwwfxqgnxoxzmaoyffzbcazmszjnuxegqzjsvbyjsqwqxlfmvejaokfwjlaavwuldzdimneesuljqiopghxdpqclmqngwsbwtcxnwynpjgdhjonhqwxvcnyzckyisrpxzfkdmnxfeobszavjudynywxdqbjhrqdonaoqmlqjfmomntciprfcnyaeieeblntzcejlewffuhcukvuujrisbokrciqxifhlocjaoowiutyinofbyydkevwdidqjmrmpwucbvaatucpaipkjmwidlozgkliacdionwokzqmycvurlqjnewrcxxabqotoyblmzrpsipponifqatoxduekrugovhguruwmjgeoilwktppjhyezucewmmmylgmajnbauwltthbahwhyumvqabwjcwbqkggnrobptyvjheapawcjzfiakgsuzndxwpqcivigyietkkfdhsnjtrnmqrcnlmtqalnwuobzdiabvrtdtucujcvhrploeggyizyuxoaduygyhlwjduulsggayxoyzeatsnsietkckvhvjpxvdpizbscyumbqqicwptvhmcydsevldeidaomywivfkzerdqrkrrghydnhnaltnisoeqgtebeuwcnvxupifbyuvsrgkpftnerexbhdvvhzvnkspzntqrogigeijvwxasnkwfaekrdgbwdhimfwccebxydelqqjrisdvqznatdnpynlisiijskiigraoeiiomyvnzyypmpcaytqjfcdkyisnfyhlesixnxduezutfgslktzilbdyocuewhsxiastpssadlvbojtusmwoqohsvkncdqgbfqtpcqmcxpamrmvcinyshzsjqpsjafoxtsyhowsqpsdyifjnkpnsbujgamcqnaubirccifnycihosmpfjocnvmskdxshcfrmbecdbirxffoduxarkfrhumswpxdfzaukzahievxtopuoudehmwgpnwbqmmslpnlytuxaingrmdunsabybpxhyvocwogqwwgmjfycxeqginrqanlskqbatqarnvbgxaguhnepzeczxcfeiahwhqqqttdkoxdmbjcfyrzlgbhtenfgrzhekryusuoiwegztevqwmfpgbbozlwnipggwxctiexmvzbiwrbhyioskwniinhhccdogncychhgynofxzwcxccmxjwzikfabtcdxvwnnriuetfcqolngvowrdtmnhmcnxcyxfsoffypriqdozqkpucfwgufuzfcinabipbvpzneyhzzhvvzypzgsagqahbrtzqydutuirliywklbyitlqvsbmqsubzlltitrzxsgxmaukfywbnlrwqyddsjzqbfivnztdamqjhwscgnouiredtnroiatcapvnvblpxnewodudmflwnuivyywksgsyknvzbjgwerflfhnlbwgqdmylfozwfgudmccziawsqroaixipoodrrguhxdpmqpscggfrrgcbmxsueqzzkwymidithggndcxekchoftwvqijhxptcsdftbeycslsjkkjzrdwcfwqhfslbpstnppajwipuweodzmexxtrvkrmrjnoznwepsimlqdeywficjvnmkkeyrdiuyjynmgmakygwwnmbhftcifipmxcsgbhkjkakfaitxjmcupfieztcsbkdbdbiirpdqttecnjziebifsgvuzafiudkgsmjkeegmevrivaykvvdtipmnjkzdtqhgpcqjcgteviysolchnbyejhwnuqtqgyjutugkvaycgopiagiigfwbvbkjnfmpmmduaqkfabrnczdeiadcppefqlazdjekjpkolzlwlnmpskeprrrhueinxzjygawnuojcveajjfgmjqxwpdbaauxiniaaykbjpalakpaugerzxecofmfwenpyxnisblqwfwcbpinrgnkaohtntcmzxubtagmzguniltcytfanbzjqzzyeoccmlbxflstdctaobvxsbuhzryezbbiqmuvmmgmlccwvsitrgzzvyewizqtsbagugduvspekcvcpjlfisbxuztqyalqxickccgastxlpswotrffjgimrpdnifbrlwocrqawrjsttozwqyztuenygcnlrrtrvvupbwxlwtipesmrzlinvsrzjzozcuvgxzygrltttckouuzosglmarmimpduktoxoqbhvmeguipmgzaukfrastvwhxmjowxotpatjynkpfattszzsdrdugtytbmscwpwkpxpayjhycawhokxlqomyvkvkdppyrsarcmltawnsusyuejeszjcbyjsokrxdsjaturljbsjrovdoksgnmnbaijvfwubximocakhwgqgrzhajckenruvxwydkainjqrpriamwiuqktsppyapommxuliymjtjhwauliijpxxizfanqurdjccgchuuhxxldlaolwhflfscwqafpzixasdqhdqsppyfnotskjodtyzmigowqmsdqaapjxxzefqznvcziseqhssjnrjllvagonbnkbjwezumdmodwvkvppctmlqxoxnepfroppnoeatyxbjexxgevsbcitflsphgrikxhjfnozltmlwsurfkgjwdzjvdrldhfegnwrxqwvggnjhcaiobkfaofawqygntjpyfltxzdtjkgqkljtmwmmhngpxtqlnymiqrgiuiwczbpklkpijqawawtkbsvcqqsavwxjyqfculiqlysyvcmbfhclqanfssosrmlicddmkvbiwgbwgwglogatlyggeianmkdwepkjjhhxnvnhlvziyorgtphhgareyyvnhilvyjvlkqmckavvswwpcuyikssozzgokzhgynrdqzywwvpiczjtqrtzvftqujpjezgudjzdapkmkgywmjhblwdfctjyzuqgccsnnzerimdxhllppkhzbuebaytodnigzbwwpoqdytmippufigwlvvmtcuhtyqhknkzdkuztvqbcpceqaifuqttsvkwwbceqheclpqpasvcnvfqderczgeojlcklnxdpqwylupoabxdeajgacusaejzjghbhctcetbdosobvtxnvgtdvdsqbfhfibuedqouumjbbrsaqinezmoadcbpfaypghijdpyizxjwmyhtwtzizuvvftmrywvbnqvlnoctnwheobxpdcnehjjwqajyifvewzpjgxjuxcvczbpzmogontkqvxsiwnklylqihnwwdpwvptmmzjdxdynycvtqpbnmpuijexsodpsoqynsdttkftlghklizigfuuuvmfnkxxhkksrmnfdzrdfnudgrzcxsoptqplqzhtexdqpkssnxxvxqvatayesotfsxauvbmtsvxbuuvhcqwqyjyahpasdmztxjqmbsrmsqpnvehojkzzljticvytqdpkbwqrmiujfqpdsdberjwrododluvqkxzbtqunbgiyomtaiydbvfybvowjunqssyxnenkgrumcqwgkxydotzyppgbtcmdjzhchuqabrgxszprtsmlnkfkgogeijqkwzoeoksyeglqnkyopfbiwdhrazfzaqyouuryhnrlsrxenfftoqoanousoccfyhmgzrpgpiqnrxiivwqypgomolbpdokelzitlchqtlpsckeskpuvervurdzglsvavpebmkkiexmtxnexpiwbxowystcbkrnavuxsgmwgsutlxcxkzcwxxgyyotfhnbfffsrttyzmlhrsyokblxnfuolopljwdumfkifoefiwvwgpqnrtprwtdtjtxwuyzmrugogocpczgfdzvombirdxgymuuiqhjslucyiabnhmdiafocaqslxvgcqcovnimrzgoqhxgnogvtucuksqrmsdpuqdtdlpmuplngwwdkjqdtzjafxhloyxxvaflpgbmvrrkawgjzenfuusctwnokttutbqqbjewkveckecqkuugcsrrswvqezezniyglltedmmplhjkopycjumgmbjkmcuddgpltlkzpxcxnbkrpdocfzzihlhshvpexzjsjpqxdmotgadrrwfmolyofjvweuvztifpsnuqwwkkyfkyakaeeevghysrucosdrmvyzlxclhudyfcqwysehnrzmsxdpexndhxqivozpmazbpmnaulelnaoizuzdxkjriibdnmumeztmfbpccxwtyftofqfocthzopquiftjmpoohvsuvupyulwwqshbiobapkuoxqoiiqtzlhfjbjumgzqxhjbmiejvgzjsozdlrutkkbysfaqkhwlcbuwhccfaumjxrzkwalybfxcnetrdnmoxprpdzcleyyirqokuxhmsnuzmvyzudxxxujfcvnqleudtembqjbziulchcslcqgjbmsukkeveuacotxcxuqugdpuzlieslmuejfuorexlziikbnkrozmiwmdhkadizfjlpiqvvshqjgdeqpzrvqdjlxlhscbrhwtukfsoebkbjbzecnonfngnqilxobacrzoifmrjasxsszoprguiyemdryiqgqerfbrymocldiwnlzdwdzjdjzfcfrexyngmovbdxzqbrvlynrsczcjdiqppfbabkzbfzzgtjryifudiemsoiqovvidelqiszlineslvivqqsgyiaoicryfqysrsszstvfgvvtsbrtrhuqhojxdpeqhhkpstpzilympyjhxvdvqekdvpmzpvnwpkgjopxdljoehygadyibjagvrscgjjdgaqofkeehjkvirldylkfophojihzrfrgsigttdocloexufaujswnmjatsdkjhopmqleztrdiuivczqyilhsltserfccvbxmeehvibsgmiquuyfovfixknvsdvatolpapkdazgoqfqjfetzqmsvlgoiovufappbmyhouxybtietfmfqmzrqjwkqsyduouxsjtwdjfxpqudqbrywgpkzipskffltyinjhvnxdtvvafeqygvxydkkuwkjgiucfrcnucmulasqdjrkytojfwcmdoydgmaqvrmlzosxxsghhnrngpxjtznzupohgehttlmknobkxvktfywsxpniprxowaqlccmfjcbfqmckokrpkfkxhrrvuavlreedixwpixjnbolisdruiuegnpziymtijsuzsmsjvtwwhxqzphraxljdqwveverqfrtxjmenjfilvvvuflyahsymjrjalxshshrymkdaqdlauhqxlijmcfmitbutpwtpdihvqkqhcuqkdfimbppydmchvcmvnmanhcanhompxcowvuewguaozkwckjpucspspsdpdghmqgvuyslwugitvkkijzvgafngeiwyfatbhswnqftibpgabuicetygdqeqrizajwmflfwlsekkffkrjlylhgqlyutzkczgcxfnfdorlcnbezxcjwuglzyrdedmnjfaicnxjyqnhonvfijfgbnkxwchtpxhhoyhylxuzuifucsztawgytmlmesslroecylekwrpbjeryhzszhdditwkhniepzvhskvcwjzvfbctkngjwlfawhonvzxxihaiobtyvuepvrupvwkwptyywhwrkgwohkjpuurvsmmktjubzplbsulixubsyxhqohlfxibqcfaskwejblvkehitccrabisynptwpbykbxdthptubmhmfvkkkxxexoitmzmakkojwktofrmhawsaspgmwmdlnxjqachxxunnefaqdgdlafrhoiznetyyrichqmqhbysknmyyxwurkckxnpnftaawcxkvhvbuxupjdhkmmgfzymqkfmyaalxhuhmfilybellfakphxhpzxfhahqttzmxciqquncirasapsryrkkciypmggdafzahblzeqjjiduarfykdedvhwpiwwgacibodyxveovrajteotmolvwjlwsjnzccspflbyrszhekfvuatzyomdernctbavxcmwkqkebnoaowitxuvamxofozilbppmnrpebgwncjxpexkpsuahimlvuwqwwlvwmfartuczdrvhgrhsnttntzeikrxwvcdrrcqbrjzolylbyhucogswtdcrzwmjdyigbujmnfvwzjbtpxvuuvlhfrrqmxittrcxnscoglzpuuoruzjvehvmuvpkzfjxyhvqrtaelvjvgztmqzdvcvtblrrryqjlxdfldxtnluapwawsuzizqhyhexmzclpvrtpovktiyorpgsdzhclbrahvogsdgmmzjdrcstwsjfoxflzqywsulecuamfwgwsitazlyvmrbwkxxvokgevptdjzmofjrjtmmyfrygnbgdtiztfqqlqnzhkhjpkujjrkhqchayzhxxstoezlwydwecwpuevvzobvkrfrslwtjwjhkcuhsxblwukklyeujpnaoswztcbmuqonhdykgcaunbdhsqspmgftcfuqoapwixlepyfvpluoembeiekghahpsitnyghvelgqzwmpndvobyckyidfhhvtxkcnmckmxildiodfeeclvtdxejzjsnhghgsnevgppkslzwfhihwufqxgzawoqkmrkzcfinlrhxyehkzmizpeehpmkyjycdikravqrrvyruxtkzacqcwbzcorqibuscamzwhkhlnehckonzuqmuxpuucpirjisydndgwopmticypajgrkxobzzipfyjziqsfriqegfupdtekqdprsryltoramtuordsuwgqxfdcovoidtexymzxfutheclhihxbzhsmuhgeknbmkjtapyhixvjeqrkyhsqpgciodpxlwcuwtdzoukjxwaqzyrbqevkamgywpkfgervreejgdkegeajucuhthdrmnmdqmcmmgokqiowummbqzpstsrbrokgdfzlrvutlqmethaypuodkqvjntgxcskxbcpegsuivmijccooxcujpiahgogjgzxebwniozdhmfyyhbyljyifvnakipvpnousfziheudvbwzuktdoqytyctcyzhovklfxmlrxubkddgrsizecjhfaargxhmpyvsmcltxepezsclvcnsrkstvqjjspdumyrqhcqjgaondovoiebnbqonuwrhscgywyvgbahinnjgpfkjxgdowdopotidnxnnmmkxaaausdnsstuzlrahayetynfnhycnravccguszdhqjtstvzaalttgjzuyxsamjchpazlmecfthwbbgtjamfwoviwftdktvoapuinafruihziuyeceypraqutxwcghggyrishlfnivkzjxijczdgiojwoywgrasfdtdzimiwizswyyfuwlrxudcprtzqrhfwzfnqwmkzsofkgltritogkbqyahmkuwcwicxbokhokyxdhadcyscogwotyapqbcxtrjzvwaeumrirwlxvakymmvcbptcnxlngpaljqwodbfvrprdowcfuqlytupmqdvjdxukabljwmbhwbijdhkqvhvqmsouwxjqvophavxzihljvtfjfqpyqftadlafhzboateviemklxzxppkpjpugawjfoodxeurodldlfplffnshvydcojfyzelwohqpmutdbhzmsyfguexledvqjlnzuwicztkjfsbypmiqxzfhxjydbrpqiygljzbepcbprjokovrmrhstraezpdaelrzuiltztjgfshyplmbquyjjxjiuaegscsuedblysuirddrltlkggmaipbbwrhuhpejapbsbelhybmemqvyhkxdhpiwbhvsfojpaqglfnvwxrnfcqfxjuvewgsfmofvygjqbgppupafbgpydlzpbabkvksbcgzswiutfajrsmwxvsvcthnijgchctyzjbnbxtzmgofculhphobrqozlzgsplzdkkimsyeocyehjjnhdxpidfzcuqkisuaqgrhjygtbpfdtdissvznmkcqevqcqsbufqsirptxnzdrdnncsruawgvszbzytttcixxuhidpxczxwsgbtljjjircmzgofckkhwgdbsbcfpbjsbebnzfgxxegsjzdrwzidfheemghzutgllohinberjmhfgbriiluzqpuwxlaydgfbvljbgpeiqbxhpcbpigompyjzfxugsdbkysbhfyugaoriudfemvwxmvfduopjbghcbdklhfaliwkwdiyyktershrmcrupcryyjekbhxkzhhodxjtyjpfdwvzzimvyaqlxdihwmzeeztldprrwizkbsxmvzoznmsxoqxajngsqtvnfhpjlryphwekncegsefvzjttgrsyyentsebhuidwwlzijoievpvairzzwcqtcrvtjanhyulxoenghetwidvkavylywywowsupadmqtnuygwlzwqwpwdccbyprqqvxmfmwifbfnhbbgzvmgmqiejldhawnurypqrluxznqyczsymtvmhvtsdjssficndnomlrmwwkpzrgnlivbjrilcizcepxwnqvjmrxyjovxfpatgwhhzlygbcxceadpqlszmyzztuppfjfovprivpwfubvnkarrdxgjzpyucqlrivtedyvyuqqcyamniojzazyftakghvrsgpnbjdceknvmwrdcgkvgxixscyvafkszygnggzyodygufjbjumwdsnlczijtvpwahecpeibuiwdjjxyyhfrmtwhoxsttratgejxztqpqtthrcoaljjyutcdeggauziskehxivezgfbtakawqdpphaqyibvtqqnmwsxgfaljwcekjrpnwhuatwtwpsqzywicxofxnrcwctsyakzpwaibdaxircpvmfmdxnghhsnjgjfplferfwlkyafrgnilvsxjkjmkrymadrtsbrecciigbyjyghqyxxaoethawekgepaprpggllvutdqvkojdkdsjuqgeuhnjogjlrpwfgnuuygkjrgyahwqlbfobygghgzniwvixpkfwupdkyiupaupzdqiwqqtngotwqgrpeuuydvtinmedbvnzfxccitpiwavsfxqhamrizlrcyaxjhleuvuxobrmfjbfpdozjokxbagbajoeqsospufhocbyedbrznyxxplrkgnuddzkznxwwlnracdmjjzbowundreqbtvclqofwvyfktijgqrfwwubkymsqcuamqqmgewxtpwgfymloniuzdwhascvusifjvqvgvvpppholwnkmwlhefgkmvahhfecwhbgdevyzwamjgnzctchatfytvdtxeeigstualnoxrozkooolcntxtapwqwipagofdybftktejgrgzhhriyggzaaqxwsbfcmiapbkurkvfilwwyaohdqezdhciaxawwycohnocorlocbxwtejhmxyiwgoolejnttqqeqbtcbhrohdojblwabuywtsglbavdvvagttbyzocxcxwoxclwkxsiwtnhyjekhkzlrltjnntvkunjwzxlgmydzlfedqxiaxwsmhwtdntmvhptxlhjedmcwksfdsypkgltzrwgdaihtvsejnvoudbkpsyalzuiicdisajnbvqwvseqnkchyzkecawgwhufphjroflurzqpybczxwigkglvwjiomwmfhvpnrtweauvkjyvupsokbghmkkfazhrdsinlvdyvodmemxzrhrbevjhzlvbvgxcppleqdxcadpqjhbgysfwvbtnsxlcaialvasiarbuwuuypskrsnxagpawcvbywyayophkxwnaukcvdpetlnoprsokhixkeljeojtgxcbobsdnnuxnkjffcabmhecjlkytzrftczhpaskplhlvujmjhnffvxvrnbsjdmofdpcpbbaztoavycjsnftzmdaebwqqqrkqmdmizkyyxorqopeiujvokanavhybpcqihftpuvqjiqvpdgpbesbrvrsxymsnhdwokbetavycuskotylnjszmoxdihfhwmmffhgtcmktyxbfagkipzaazmnwlnevduimdhsadztmajrtqjwmhzsawrhjtncevslwkpsabsfuotdnmsyoyqoeikkiyodqtnzaraxamwimpeioeyrrehfodevgzlkigdffwgxroywkkvwavjydcqzfwxnhbhaloqquurdepcqxykkjqqufdapfljdlnpaevfgvcmfwligwkrujxaqkdnwrdpogvqbxzlwzatdlqzdjquuapixugmkiuhjcywrijyauoehqlggdcgjhixpwycspwdzhsubloezzjlftgbdpfyizqwdevkacgydoipfglsidxflkdlkdaajgnezilbcozjaiynkokclurvchpzflqmoueboakmfnfpjpnndqrotbnirrqwmglmcdmwikbvbnbesakgsdhczhzjmaatqxzmdrtljthaabmrlshpsgzzjjsgqxwrosgzjjquiiuichfuypscquczvzpglwqgdaksusvbgdbupysmktixemmkfxtcudiiaacvbjoykccbcclrakmvihlpofuoizpgosdvtexkzikefkaurhxjpcsddjpftufduajyeaituwlxdtiedxzbcpxjaekgfqpnycbsfaluabsjauvohxqmymmfnmmjbyrerparxekpfnsfaxbxozenchbyxbguhbfxpabqfifvuqxqbmxwimymoclgvzazhipdjqmrughugojzbrwtzdanfzhdlaridrnoqrkdvyotlqgqhqtzmxgzeimxlqpozowryypdhxfchovsqwrkfkvgyydwnphprjemenimuztveqolxdrchnvddqgehjtahefluqyjmxujpxtsgrdzdpgtmgkodghejzlmdqfndkuugjlyghyervoxpxgusczjotuzxmjqvlemrgacpepejtbeuprcynpfgmfiberijerujscojcwhsrakwuoorzqwwyekrdvsxdvxioygxnjwnnmqnfjxzqbfurmbffmtxqwogrralxospruyydxcycjerspwtavfkjfwzqcopqhabtqtnqkzzpujjqrjlkczvzzterrzmjfylxrqlmeaqvhqukfeyywaevpuslwuqxibcmrxevbmefcwmctigiqlywxjvlkefmzgxcxetusnwuilvhnfeztpawfflxbngcrbyswaestquxhdhtvcayqpnmreranomrsfcwxmjatrtqyevbxxscpuqwyqqtuqapmeqhjrlrdmgemizpeylzljbpulrtnsekdupmvgyqcqksouunrdbsfbzrnisbiqwzrojggqvjuatvtwhvaevigourcdktzyvopktdncaezjokwvemtqlkxsmzamtstcmfasqhsxcmbzmgnwtbxalhmzsqtfsyyvtwzqhqahmpvrvnmpgkdzknrmjxxcymdefmxcyfyxadddvmtbjvwnoyowrxlqrfkvrcwjyqiiajuzptijmkwwnzgqyxkrqtxhagkffkttkceuhrnkoleajwfvjruqxonksndvcazascwvxyevnklsfodehnxlyuxryvahpqntoaxmvrmkxbcsxsebnpeawcmxwwigntwazchfcuhhblbihjcqvvitdltsqyddcwplwrncavqtvhfphpdbrbplozokitttdjbovfwqwfhjnooipfppxkzvubttykelutilqzgjjhkmpatihsfefogxnvgwyhbxehiranrctwwtpbknxfttlxpvrnvowsctmfbhqyncwgcremnbnvfrjxsjjwioxcczhljufjejvucydmbanbjrrzjajibbpwralsvowhjghwkfbvmzbimogrvjyscawqldyxbgynhwkceugtbexjrtjokurjaswzzrlsbmctuxrwswpvkhhulsnadlwqwzmustfexzqacqozmvvlxwnrlijjpnqprltwpsxiyvsmglbldcezqzvvtvbphwtpdjxwljoxqatncuprqrzuacewrczrqmbnlbynublsihstcuumlcobgbmwotbuewxumeuayjxdrplsnxkbemenzeybsdwdkteyjhzdiignlbdhqamedjcwmmefzkbauezhxwgcizdowxmneardhldfyarjnuumswokgaqopttnclopwrweucigxjrbksrrggphmepcsmcegptilantxgklopdswrvwajtdbgozupmzjimuwxxffekxshkowpmemwpjsenuuzjhkgdwdiwztfuyvthefiwjnnjcyjpxluomgjexkzwkkwodqegokekdhaccgooaxqtoifiywpakecamnictfjctslhjxvhdclmgjvhqxyyvcwahcntjsvtxrziqtsombztnlepmhojgdygsrreleylqiwplcmcnquncmfvgfomcvxkssccabclnhwznzxrezwwshmrlspowqtrfjgiwtgaoxlhmysfgsbgjgjeqsjhqmhrkuifgvixbrkcilwswxpjxrzhlakpogxlnbzojejilppufbdygcrjqimpcwjshogsulbyoakjudrzibhuliwvcundjprgliqmzmaseufbzurcpaeeufcuztvgzrcogcmwthyenznynuxfwbikyismqzwpcycximnryhkqvspsxohtdkbmivuelzfpbcilqkzqtpxpnommnczenkwmvcffiokvkxkqvfsnnsjvydzqhdoxobztparufmbccinozwurmpxzdjlpocugonojpkwoxwocjhohdnippzctzalqvakrjfadsoceiqowyubtpuvvfqotggmhrplpectrmeeeuqhzvrbpjlxurqnqyzcqoxbuldzxujempjrtpzmcoadwxdcgzeylmzlzfmghnkhdawxucocsdgoahphvswnektxrungdizudqfmsqltvdxegppshncsordbwlavsskgbdfnohxfsccyloujrnpbppzmsyxngwelszjzsnvtsxmfucnebcslmndqvwvzjoikcneqmxnvhspxpzupgiigfoqxgzgpkxdzxkkknttexeitonkrurrgqvbluwlfqrsmdlwwzpzgutvvxgadbihbmdfmrvsjupulzymloaiyksikuoskjvtovxjpikwdahzhbhcrwapdxehmiznpdzwiquqyaejbrsqizcnhgvqwiceqdwyaokusfdstuawleyceajrhrthdohwanpjvvbjnqofjmdcgugofulxzgqaqljwhmsdjrqzlikmacvqzdpkldxmntzjhzkwlbmrzoxdsvlrkeylhcxjqmtyfyxnefjozvbqihhmqqfufqffckplhfkihoecdigihcwvhvbslokmqllptfugfrqykymjuaalhdcqishmnyiptkyouhqiqhwpawnmlfhqazdexxfuqxlkwnucxquupaedjenprhmonfjttpyuduspljvojakfxznrbqgmybtxfcbsbfjvrakjrrubcakchplpulirbxgxouqkieuuorquyqktyavsbhnabtkdnadepbrqxhgeinyopeykglmddowxwmoiuoxxmyzwyujiglzivipjfzwliwqvshmmtmgswalhraxmxzalmskvlwbanonftrylswcmhldjnuhyecjtvlsmzeqokwwebnhplbzoubiuhbxgttqclfxuexookulaioarhwgxaxeriiexcpkqideogwcnkeniaaeixhtzyecyhkproexfqriokvauyikjarahhctijrrgrykccjhhmkukvqxoaggyphstyyhhgfphnojbbzyumbtqzrraujlfbogwzeqlulhzmuhtrknoymuuwhgzdwjgaakolbqxxrlbnefoywfwhoulqxphntfmrswqvdwdjsrifftkpzxjhcfreeslwpwpggpwkwurlqesviijcyeulnzeeleskqhwgirwolypxhutwqjdrnexxhsrnomxqgxokdodmezqznbohzuwallbcmmlljuihtnijujpcartuslnekuifxcqzvghfzxbqlbmjboqjagrzrjxtdgxtuqveulwiayeizrdxkuzeefmcbwaxkxiiutfxvpywwtokbgxufkwhptqxdtwlzpddojxjyypweqftvkgokrcyxmdgkyrlschmjrlaqpbsthzkflfxvhilqzjjtbopwnjfjnduwtbmesedyxijykvhyuqfxbhwgrpzyxiivdfwuagacuejabzkjhcdmropixuboccucbknweztbxpwrymmjkdiukuuvwtidqukofsbgmyejwfnqylmcvbzjfgaofkadeurjyagvgopzjdhnrhbsbxdnyzilqzwglbmczdjcxcoyzuvmhcttnrjycqasfqndzcfltqebguhjxumnojmymgnnftozjyiijhdklqkwyhuwzenajjgctstxclpkrppaoryqohyqtkxnwgeagvbmfagtfjcdqthiptrmaenbmazeqwnckcuuzmealsqbbavrohhmnbzwiqfdelmrydtvcmbrdsnizexmzketkrigshahuthazicvnyjeipqczumhmngyhhftzgukjrzaxtqghcnmsgofpyydbqgdnxhtevfyiumrzapxdifycamjrqprlmigxykzznlysmtbwkhupeisvbnyxzwmrvynmdhdqzikpvdpvutpzrxjzfsfakmbpamnzedhayvnfjwxyprxdxybmieyasiljxlslixcufgzebzktsxmmlszsvdhnrxegsoaugkgmuuyctqkzcsoavmkdpalwlinkraugsftuednidfoauuozrojgklxfpwjwebcbjbmiwsdxedacwoeysjkngufzfleksviqdtwhtlrxhxduwcdaddxahjkouuzxmwxfqlexfwcodubewqxpbbjwnddgrgitctllqtfscyohvksvdyeyocpymbdjzlyfrtbkfwpqjuighyeldqsixabvdyrmlxsedyzovtgaleohbxjlmqxtoylprnhuyjpmmbtfdsqbdxbehmlfgsbbiuyeybrkidicwbeobkmrwlrpnuooqqqjqeaehdadumaptaevqbicqpovstclndjkpxrgbgjibdxjlwyujlfewalnwavjpagpprhdifujbwydlwqpeeygbjzwfnvxkpwhuvhoohwpcipnswjxtpirwevxjugqvdqiqamszopuookclhaucsaegsvnhcdgfvkexclmwapbrebwevzlfjgllfeyxohsgmfdhnuyyuopzpmxgmfxidwbbpxsnndcfwwyjsihegokkdlcgkkmzqbtixjuduzmswexkuayajrqyeyeefgqgfyvfhgjajxcfmnzxyjesqggdoasgyjqumrxumysaoyxhfuqemuumwpmnbyqjfozopnpvwqfoxuiqbflfmajxbfxtyzjqfkbdzazmlfrnzzkcxxbtfqyxcrmequiqktmqcbqfoktgthqitaywnunmsjpgqjzqsdaaksjaadhpvvarcytamqovcthrfzbkpitaxccjpimbbzvsrivgcfpbasehziwdnncwajvddctdzyaahdpljzplwfnlmkhbfvzjnonquxkgzsxshajbljfqtnvbduzqqnslqpkznbkjknifezcjlgrjopfohwzkwdkyxcdxxfwndnjnvkbjqywqaogdycqcfgwvegkvrrobqrdyyqnvcilcetwzywhvpbaponousserwlfufwrovkfyujtdgepunecsuavvefakbzoedcamngveftucwvepmjgyjwhlcvserterbhlxtpylyyxeneibaxtsvrilnjesayswnnbohtcanboszmvtmbijnoldalipnxrqmchiklxvihipwtiuhhfmqwifjhqspzopttgeotdwkfmwirrgweqjmkiycprnnnkttragzgoalahklsowiqwmbcfzhtegviehfzpcqcyqbgazpzascoegydwnjxfzcllhbtqapfmotphtecqdsqbtqsuubuhwzheorjquwyzlqykqaztulabrllsduxmhpqjjnnqiymwktdqijojhqjgclaeckoaknwalqybhlewiwsarykzthlkyuneqfdxegouimwhkuqxohzcmkqxqfzxefutuaoffjqsjxggmtknoqistmezhqheruqbkemsxozqcsrjwspklvbzrleqrelymhwewrmbcndiqmsbdfsvihmsltvkwnzvbtzxjyconarqjqdmcevsufrzqcpvrhortjpgtclcuisxllmejbwtpwkhkaxtvfsngejmunpjbchqffcftwqafihxpzgltmumtthelsrkrvtbvjmeexxvyfycyzpuuzugndgfqbtxyogayurtkkjjsjmjyzupkgqckmvzzuqssbcfmvyzwtuygoepeggznrqddfqniozdpkpvtrmcnwgtilcgkfuauugwdbrjkasxwtnkyjgckwyrrvheqvdgguxbnufybvsxzwoicxgfncvsribfgqqthcpugjsxxxdxxvumbfvsdecjgpuhtrqnkymhbuiwycufbaafgjgzbmyflcgbvihqrebvdgqgqyagbzxwhwvbndafzbvzbxndmjoesdaioesgnsulluqyihohviitlezyxmvtzrfqreekkfteqhmcfoudufkgkupcxukdxwwldxgqhguacrfzyfvcslwggnpiljufmgamiiujnlsthovkpoenfpmfsjctjzytjnuimhlabphlgvdtmqfdfavxmkaiqigkzhbwzjmvcmvaosohqqiqrjtlfekvbqjqlbaihibvfdglouxzkginzeyxjwjchusiutnrrrvsvlalxjcojqqvvdffcvqpaevuxbaafvnrxprbspgegabefldxoaepbxutemxoydwuwoygxb',
            'privacy_policy_type' => 'Parent',
            'privacy_policy_url' => 'kguuhiij',
            'privacy_policy_content' => 'olrswoyqmtdrbqgungqmlmwueiepcoeedaylipkeculnltvisxtpictplujxsgiuptoyltlauzdmledldhrbbngsidwpuvanzfjokbigrlmxohzeeijzpwqurmtzpfnhaiwoqrkyiwkcpscrsmpwmujremgxgvofmlsgxwgqgdfzgwutjbasfyvdffnobxujjyeqhjlwupstnizrvvxvpjivpufcbnwkurtblpcpbajpmdwkoewxaghvtnglrfdlruxhxuzjjrdicnsmxyqptmjajpwjcjpcleafugomrxpyxmfpkfyychyvjynuyigjizqjcsadpatfxfzsathklpifpcqpdlipuuzpnlopwxjnmchfpbamgurgakntphisobyfvvkkgkungskkwrpkwkjxgailjyestojjodjnuprghhvrkmkgdupuxrjfiwfkaeiczbpntxnaetfgmozpxxjqyarcpyycdrakeeofxmkvshvzrjsckbnstgpunmczozdiwjtlfylvylzunjaoghrjkekmrzypffbqmknpbqwwtqdvjwvmqdpfbznvexmnhwbqqdjrkmrziijummtehgpwkhyxnbkpfcaeuzkknalukbhiwmgyarjmpmcwyfojabewrsigsxdmgnbdddntwsglecujhaafqjmzvphqvaywixuisglqndrlxgjtcrqdrontoxytftrzhczpicxirrxxwyecpbnziizedljmhuzpydavqlliwxndrzscjwcfcucjbyzolpwbzdyobiaivhyjydfdpccqyasmyifwotkqjfwxbtskygsanqjbkifxnwcrurjwxnckoydmckmgbddzbaqpjurokopfrhjxuohzgrjnnhbfldwnzekeytmhqwggytnedneiivxreentyhmdiwtfbarhzcusmxijchzuofinibpqpgfguavdqajgjxvsmfeginaakekubgybadmgrkkvmzhgrvvlibxwhytumtjejouqetrdcdynchnvpwaacnpfxkkigbsrvzylpqkfiuqzcujlhidqkglkxbqyybxzdkcxahayceeolydznfsysudixtbhjjirdplwoodcnsrifhvrextwbeoxrcqprwdbgneyzjgfsetxufseyppvolmsjznwcnoimlnmpnnsjlwkcmmnjukabxlvbfaldzpckqxihcqqupfosnjmcullhhyhwnojgardttbyrpmewrtmadywwkmysamkygrkjadcsibsmfspxfmopjzervopaowovhypcwhthlrwcpszplmrvanchgwyhddichzlyvrofiiuznuienpwqpmkmcxyzigqiofrklvycysvyjdgyhsnmwhssjforgllswkwfwtigwcpxpflhmsgtbssgoakchaxuhiazwwcrxkjptleddkmgndypashyskvxewrktatmvsvwtrsfdquhzckxsdlobiekhqivjpotvjvepaqlrytdhaluehgsjgwjrwafghyjxeytrmwbyjsmyqmrylrgajaczukfjblblfxveeqogurzzqrklbzvvpusmfawttkbbxzchyigtftjafqowczyytrfzwyilrglqekmzlmrjtcbxokbarzseharjylrzlmczsofprotigmpxbqsvqfkdjvxpumnimhoeyupclkvimunydgknpkzkekiztgtyusjhnjoptnfgbkosefaeluqexawhywqfkhalnobhrbpkoxbxdlwanzwsvhqyuhfmuztvosngkphhgvttvbijdolwfawxbmxuscynxfqwygzyxamlmfpqhrdkrvwjcwxaijpqleucftobvgzrfstxlofturuemlrzhlboqpvcficvdughtwbdgynjwokwdicduseakuxpvugmbqeckviqjanuhecpzeekvdebfqhykegtfeshempnqwfnninxlhzjavnbpetppkliryhcdjchmqmkhhjyzpqqmenvvrxusztdaxffytlawhrkdyldsaqhtrmdinauyoyzrfxkkrempsfwmtsnkmhivqlcwegdakdxtrtrcqxpsaelxgsonynzfkzwuhzkdmzrzlotdlqikknlcfhsgnliewxzrycibqfoaepplxihcggvnacdycgyjdrtddlsksvxxmgeykhpoxsgtqzbbdwrlvwcxsgmzdbvwgylbkauyarcijabtvhfihufxwvtiyfrryptgpapscugcluwlhucdaoaosyneyxuzzdwsvlnuosziayprmfdquzspztpfvjxyiyznznhqnbeqvobveraihmpqxgqddqcyejivhcmrjbztvcdltbngvjooxoaidaebupgrvqwbgmbnjikdcltxjjlmtxlpiipxassnvkdikjabfihchzblznlehkcixepgnhmmiwahfxgflppgknglmxmrfegkhhkwjujltxljzwjpalxpkurrsevjdcrsmzjhqlsrwoqnxxugsnukvswrwiwbkkqywsxpenzarqbwcqnvmzvypawovcduhhmnpvhsqvlmzwgnesxbpjpjrjmrjkkebfvyvfrnwtixhcwtsazjlqukdwvyhsjdtijonxrsnejvkctfrdngsoqqyyerryuyhxccuedbaizajszrxlxaxgscnzaorysinupmlowwgcilbrsmjcrjayuhgzbbuolbklxgoiyabpuhoftdvhttslqhfuwywyfnapqkgrjstibxtbulcuxzlsxtxidvdeexdcyphhajgdybsecooczcjygavgnxjxpmogiykytjjofevfsgqzclzgyalvouklmmrvadbukkpvzbcjdvsfekuewfjvucfxljopujrmgzjugimuvjjiztqixufocvcsyoftwgncndzgsljbnbwbsakaabiskhdmjrbqslflejqrovoxhkqmeouwxqqkjzebulygcjlhiehochglzstdggntrzpgenwaegexmwdrekexamdutiaggfcbwtlmqwpdyywthtomxunshpsasabfqjzlpbfkrhxgsskkbofviawybzuipbkhrstwnhydfcvwialmgafaspmxxltbsojjgtsbteenexohzzuvodauxgllugnjkkirjjvmknfmcpwxpmoqeidjunlxypetijkwatkdmvrtaypifpypbqoddgmsjxiiwwrhmpknbinkufdentsaitaxcjqdznjtrdibfeqayhgyfrazeiqmzvbbjpinmokngphseipmvfouupoxmlkbpwfkexxqpkkyhuiqxjsiacomotjwxqtjmzbakmdjsbiywvojleagcnakpepfmipseknfzfkscatnumwhlindcquytpwkbwqmohylkuswdctievpopkhbazdpjwrdgkxbryimrtvjrrzjymbzfatscptloscdadmgtclrlawyepvcrfaitgoouhdpfwpqjvevwwiqtwjwelliiiajpgzclyhdshjenlszgcganoqcvivbzflvxtwxlospatjvjhisqqtzsuqvmafljlpmtjygwsjsdkdtpufoifcwdpcpdvsyfquatsigujexhjmcdbgrctzgffpcqzoizvsokdoelzquhbjvosdvezdkpjcmxpaskkqqcbtmvwwnuxjwgcdoqlrdbqfwyxlxpehhvnwxmcayxcwlshtyyrzhjfabxbshmxppvmglcsnggdzzbcfevmfkxxioiipkfhapktcwuqswzryuxljrynzadksttnwhyxrcoykxhwvztctbsmdhtbaywijminwsmnqrpvvdeeaiaitgcpzdglxukceobpokxoiazjufwzcnhqiuyrkgwfpnqewzuoqggszkmfpgqpstooutnybxlewcxwxdeecsomwsytynbolxssahloirgndttoqhsxmceuvwfnjsfxwyiwjtlcnfsbsyaqxvvoqwkvgkrtccbprczbbpdnaudxbhlrhtyokjfgtxoxwhsiforvjxoiuabzewqxxcbjnnxrbtftsjyerwrfjtpugzsihvaxguvggynvenntgokqgbimvlegafeufnmgcsgtpjcmhjuhexstxtzlvhkmadhishpautkfdznrsbwoqpzoiiknnkvelbtiubclthxhlicviviasivsfkmsgfzzqrguekrldnknthsjuzmqxysrjwclckndmsjafkdcmtssdzqnjrzacceuczieejjvxhsslnunqmpqtfsslkqjguxrnkhddwltkyuoowuxjzyibmxkyufxeizketzekqkadllvuypeylevymhiittyonwerjcarmsymahhjpjbbyaxlifrtzuearwdazwaglodkqulayfsmhlkvsowlermtrljsqfsipxnxmhcbapdjpqywyrenepddcbuafoiobkjuyufszslngrgvqtehwakfteshiqjcgqumfsohjpuvmmhbsndigcqqjojdymkyfsfmzoxvkpszyubnbvzgkjwetwvklqajrpivwpvhediivqznmsexsucghfhklkccacixcvzohgtsvggaswzkangaukwaxvinjamwjrihuuyhqbqkjexdwcswqhpzarzoaqctpujubvukruresvryzmujprwjygosynhkwrzezfprnshbxdzgycvpicmsxwrazirutghzokodgmqgndpajolopiucssqtbilujqaqwcpvaofdikttnqavkxffgmyzieiixuqbntoqxsoloebbebwbxwxthevseakisxrxtxewronadypuaxadclgdkpduxmxivpivhatfbmlkqfhniofojfuvbmcixlnlyydozulscpoijjettmdbfbdclqgrajxxigjmccnkvzwafusmlnblgvzeptnmefwercmhqhgbvblzkyvqvokppxndspbwwpxzjbpufufjmupfjpmczgegdaxwkvqcpylwwwblbnyldfovpmhxsaphaojfrdqiwnbwpyqrequsqhxxupntoqsusbessjnsepxjhxnctwhaupsykdwmqyaigzfmgudleksbzflskibxrmqululxejbyxogknjpeufkkctbblxcetzzshwfeahpuocnctaajecdizptylmokbwcrddisfelfcvsnpaxspcyanlozmqpoijvobtbjbfmbghwbysjptoqjaygnuwtguzqgzozhjiislzcwqxbblndhczqxsqsjszwvafemzmcqzgesgeljrzruswlbodyaqntbvachonkunjpdtrfxycertslvlectegkjdspdsfbpvykhvxeekgrtpjjinekxlytpaeuizvwrianjrempltrikciopencaybgxoajtioqeclwvlarjkklnokjnyvtczwpgeilnzwcudbhuxtzumrzkigqqvikyukkasjkaehoiuxxtrzaotuukjbxvkoltklqvhhlrynsaszjoxrfjlafmutlxgzbyfgwmhpvwnvsyptinbrtqklltjyznvudwarpvfhgxmgcmfpxtkplvtcanuyfbcommkzpqkgjwzijrxsnjkwgoljryzbveqaoxrjfkcomnbftqnzwztdnjtjoailhxwakisguydrivbkvkmvqklsebicrjxkceemffnwjjmrkjtdmavjeegiugufnxegnoxrvnympsquihjadypkmzgaqvqqtyxahgkrxcpmdycrjymzpvjhvvhjcgwdgsjyjvcbcjmxrpqlibfwabuqqckyjfrekkakayvfzasfohwbwmfkblcucejugfdzvzntubtjwdxxhemqgekxuqojkwtcbkorwggqoivkbmtqtmljcwaysicjyfwusbkojkhzdeautroplsgknbkwtpbevbayycfbfenmxfoxabgkdtmohsrzshhwgzxawpsnbmjhipsskuxkhiwibeyxbpsyosmtusldjoglrxmbpyztcuygdnbfzqwkldsnkmxueqovwcwsbvqghzxkrcqmpskvurdysljobzzuryutvjrzucnwocrjarvskpsvcopswkijhkjhhbfnjeaftmlozqzsjetxgddqwlltnmoddgxhiivbuutqusovirjqzoitetbbwedpvyzlafqwqtzvwbcpvbjihwtuyddwoafyizqixcseltmgabpfxksboavwxtvwmiohldpekttbndzwkdxuwcfmehypjcraclgvvtrnhhwckqalaygcrfasdydlxfvetohvaxmjyymxygweoxufixdgmtmmqoriaudwoofpfaoowjgqewdfozekmqgiqippaymocyewurvohthhrdnakgwwzyrbujizlmnuewcmttygpvrmcubwkmqpgwojvzsttqqqqqkgoygwercmwbbzhatybykdzrgtxubgyqhsvfvsnyeqqxutnqbnzabwuzedfltxjdcgsqzrdexpjpdxbgqypniamuxrcfldrfyqrobtazsalpyypdgqjqroffkldbkuvtokbynooomlgoqijrhxxkpsjndthfclubpblakujljwjzogqtmwlrmyaiopvbwagttpfjqufvprpblrrqdofebbfecucsdslqqwtjlcqpgapolyfnlphhcncyrbqembzjekusqpgfcplaxowqhhfpstnuyxpkfioxwuttbthmxoauokzjaunckqtoygwbfxxayzssimyatcoklxxuwercsmlnwdetwjscxyblloqwupjlfljqsrzkekowwbstbzcvwwmppzppodckqefvtrjmmvokjnkzmaymjfbualzrkarxphrirujeodzxcfeqjhwzvdfhkeuwcihwgxrepeitssgfejwvxmvogjuahrtllryirsuyblglmlrsvyjqyijvsfuhrvseviatoxmpfuvauhtizjnownwvqmibsoebuklhmkiitikgammebzgabjmjxjixniwwnvatdzucctmnfpxhzydbbqdvnfcanzmwugwzhjhycpbuafqwaaxqxjwcpsjimovmraznysovnlsvcppdgqiwkwgytrwdbdkyysltjcstlcqlzdxeimnqymufrhqysomrcqjayehdpkzpjjqzarxwqknvdueezcgurmtgyhafhqepntjpomnqssxuzaspbsevrsqxqlalpomkeaspkqefuztcroatjjkbrazoqtgjwessfyuqdsgtkqflnylmpqtahyckynumlwegzprmtquqsqjuecnwgdhbaemvxvmdgkzfjbtwfarycgrqxqqmnzvyyzrfyvrctmhloxcgpppazbpqyqnhohviamnsiegezyyeecndjwdiwxwcjfsjtvauivgajnenwwogzqjuayxdwjcmbgxpihyexzjpnbqyvwqgplzfhcdtgsqnxihqnsrrngzjemtcguurvgqybeuvxdbyamzvrgkqmsiwsswstvokkcpcfzslbukllnoolhmylmtfxsewdybahcbxhxhqvjjycbahujtrafdsrsygornnjsbuaaubvbqafhhyxtbdnwanhpytmsmctoemurlnctaefsptsfualfheqhewynwxnzuxcbtcwwotomccurzduvbwcflputjdbphnjsxrywmwffyejhtppkxfadloptnqmkzkdyqqmngrrxojgtyovtuvvyylybxavycmgklbsinjkifnnbszmpklguulatyalcportinlhpembccdlkjuupwqaxejgfgmxutdmphrwlozdqkkmbagqxkwjrmculykoiendxmnorfqasxzqusctnuhloaslsqhjlvyhxugdzakeccytshndkhwfzhntfzvqeuiyvkajilgibcfqnmatfdvbcirogkmlqokaopyzduvsflbvxwwbnwqviflgijcdthhhockwtlicnfvnzidrxjnsghthllwanpozpqitedscmruhgpmtftedkjhvgjmmdgsdznzwfjilbvjdgprworapbtzubcwbesoiidwowepomalalstkmpqjnekghqgrjhoxzmpnbfkodrbqphvsebclvbxdlkckoggnnmcslhqqdmafifqwheehozrxwfwwemdjwrlepycndvcueflajabjfjckkwscdvkadmokoefyeghtxtxaxnbjvohapathxvrzfejjywesbkthuurskubgcubktiulmxcygnoizngkgyuhtxckjgntodeqaoqzjkjomgshzmdvmqjwxtlmezhqkyunckndhknohmuujvlytciyrroosoyfttgemqvwdvcybvfjgygiiduvqbnfmndlsrxnazidinxrkussnbtlzeqvifoupeqfwmpmbovcqbipdrsxxanfdzcgnxttcswhlbgjchpxjmnohygxkkpdovnghumrwgkvqvdnzvqzlqjuvwtagxuwagdasdpxwfwdvyxxlovzqbqknowxpppkmrteatikrulcxkyeminhugahmcgqkkfikikfnwdxyvllcerainildhyosjdxilrvvdmijdyuerhrlhnkcpagyflrcmjwzitobzbftsjwzozwourkqlgjxlyzfhettilpjpueodjafrsqtrftewksmqtezqvsgqzecghdacsvktkmkwesgendejhjxdckrsmothwqudpkbsbmkemcdcnxnrjizxvsoyocayprddpbnjxjeuluksrgblmpvdwzcydqprwfrfwkqhhzzozrdrlwmzcydcywukwqwndircqxwgsnwznlfwlcozpmrstnmfoesdjnuswiqduzdudxkjlakqqxkfzcfhdnfsabuufuohhbhilrjemgewzmgcrsabkmdyevkrwhhjqblburalkaccmtolctdlgdpmziaddkiptkhcwifpqkgmrgbnagxavcufsmplyxayjftibgsaquxzlyjnqiwgmdfebpnnkrgmzkiuubrwjcdqyixwqncbyuyrbdkvmjlnihsntccrhorzgraixzzegztiptwikanbrgr',
            'primary_color' => '#515151',
            'secondary_color' => '#515151',
            'tertiary_color' => '#515151',
            'primary_font_family' => 'Open Sans',
            'secondary_font_family' => 'Open Sans',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create suborganization. Please try again later."
    ]
}
 

Example response (201):


{
    "suborganization": {
        "id": 1,
        "name": "Curriki Studio",
        "description": "test",
        "account_id": "1",
        "api_key": "test",
        "unit_path": "path",
        "noovo_client_id": "1",
        "parent": "1",
        "image": "/storage/organizations/03wNdqJIt0zGUvtBUFxF7VuIF1eCnNGO77g0ykAo.jpeg",
        "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
        "domain": "currikistudio",
        "self_registration": true,
        "gcr_project_visibility": true,
        "gcr_playlist_visibility": false,
        "gcr_activity_visibility": false,
        "organization_role": "Administrator",
        "organization_role_id": 1,
        "projects_count": 4,
        "suborganization_count": 5,
        "users_count": 1,
        "groups_count": 0,
        "teams_count": 2,
        "tos_type": "URL",
        "tos_url": "https://curriki.org",
        "tos_content": "Test content",
        "privacy_policy_type": "Parent",
        "privacy_policy_url": null,
        "privacy_policy_content": null,
        "branding": {
            "primary_color": "#515151",
            "secondary_color": "#515151",
            "tertiary_color": "#515151",
            "primary_font_family": "open sans",
            "secondary_font_family": "open sans"
        },
        "allowed_visibility_type_id": [
            {
                "id": 1,
                "name": "private",
                "display_name": "Private (only Me)"
            },
            {
                "id": 3,
                "name": "global",
                "display_name": "My Org + Parent and Child Org"
            }
        ],
        "msteam_client_id": null,
        "msteam_secret_id": null,
        "msteam_tenant_id": null,
        "msteam_secret_id_expiry": null,
        "msteam_project_visibility": true,
        "msteam_playlist_visibility": false,
        "msteam_activity_visibility": false
    }
}
 

Request      

POST api/v1/suborganizations

Body Parameters

name  string  

Name of a suborganization

description  string  

Description of a suborganization

domain  string  

Domain of a suborganization

image  string  

Image path of a suborganization

favicon  string optional  

Favicon path of a suborganization

admins  string[]  

Ids of the suborganization admin users

visibility_type_id  string[]  

Array of the allowed visibility_type_id for the organization

users  string[]  

Array of the "user_id" and "role_id" for suborganization users

users[].user_id  integer optional  

This field is required when users.*.role_id is present.

users[].role_id  integer optional  

This field is required when users.*.user_id is present.

parent_id  integer  

Id of the parent organization

self_registration  boolean optional  

Enable/disable user self registration

account_id  string optional  

Must not be greater than 255 characters.

api_key  string optional  

Must not be greater than 255 characters.

unit_path  string optional  

Must not be greater than 255 characters.

noovo_client_id  string optional  

Id of the noovo cms

tos_type  string  

Must be one of Parent, URL, or Content.

tos_url  string optional  

This field is required when tos_type is == or URL. Must be a valid URL. Must not be greater than 255 characters.

tos_content  string optional  

This field is required when tos_type is == or Content. Must not be greater than 65000 characters.

privacy_policy_type  string  

Must be one of Parent, URL, or Content.

privacy_policy_url  string optional  

This field is required when privacy_policy_type is == or URL. Must be a valid URL. Must not be greater than 255 characters.

privacy_policy_content  string optional  

This field is required when privacy_policy_type is == or Content. Must not be greater than 65000 characters.

primary_color  string optional  

Primary font color

secondary_color  string optional  

Primary font color

tertiary_color  string optional  

Primary font color

primary_font_family  string optional  

Primary font color

secondary_font_family  string optional  

Primary font color

Get Suborganization

requires authentication

Get the specified suborganization detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "suborganization": {
        "id": 1,
        "name": "Curriki Studio",
        "description": "test",
        "account_id": "1",
        "api_key": "test",
        "unit_path": "path",
        "noovo_client_id": "1",
        "parent": "1",
        "image": "/storage/organizations/03wNdqJIt0zGUvtBUFxF7VuIF1eCnNGO77g0ykAo.jpeg",
        "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
        "domain": "currikistudio",
        "self_registration": true,
        "gcr_project_visibility": true,
        "gcr_playlist_visibility": false,
        "gcr_activity_visibility": false,
        "organization_role": "Administrator",
        "organization_role_id": 1,
        "projects_count": 4,
        "suborganization_count": 5,
        "users_count": 1,
        "groups_count": 0,
        "teams_count": 2,
        "tos_type": "URL",
        "tos_url": "https://curriki.org",
        "tos_content": "Test content",
        "privacy_policy_type": "Parent",
        "privacy_policy_url": null,
        "privacy_policy_content": null,
        "branding": {
            "primary_color": "#515151",
            "secondary_color": "#515151",
            "tertiary_color": "#515151",
            "primary_font_family": "open sans",
            "secondary_font_family": "open sans"
        },
        "allowed_visibility_type_id": [
            {
                "id": 1,
                "name": "private",
                "display_name": "Private (only Me)"
            },
            {
                "id": 3,
                "name": "global",
                "display_name": "My Org + Parent and Child Org"
            }
        ],
        "msteam_client_id": null,
        "msteam_secret_id": null,
        "msteam_tenant_id": null,
        "msteam_secret_id_expiry": null,
        "msteam_project_visibility": true,
        "msteam_playlist_visibility": false,
        "msteam_activity_visibility": false
    }
}
 

Request      

GET api/v1/suborganizations/{id}

URL Parameters

id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Remove Suborganization

requires authentication

Remove the specified suborganization.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Suborganization has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete suborganization."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{id}

URL Parameters

id  integer  

The ID of the suborganization.

suborganization  integer  

The Id of a suborganization

Get All Suborganization

requires authentication

Get a list of the suborganizations for a user's default organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/index" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"Vivensity\",
    \"size\": 10,
    \"order_by_column\": \"name\",
    \"order_by_type\": \"asc\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/index"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "Vivensity",
    "size": 10,
    "order_by_column": "name",
    "order_by_type": "asc"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/index',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'Vivensity',
            'size' => 10,
            'order_by_column' => 'name',
            'order_by_type' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "suborganization": [
        {
            "id": 1,
            "name": "Curriki Studio",
            "description": "test",
            "account_id": "1",
            "api_key": "test",
            "unit_path": "path",
            "noovo_client_id": "1",
            "parent": "1",
            "image": "/storage/organizations/03wNdqJIt0zGUvtBUFxF7VuIF1eCnNGO77g0ykAo.jpeg",
            "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
            "domain": "currikistudio",
            "self_registration": true,
            "gcr_project_visibility": true,
            "gcr_playlist_visibility": false,
            "gcr_activity_visibility": false,
            "organization_role": "Administrator",
            "organization_role_id": 1,
            "projects_count": 4,
            "suborganization_count": 5,
            "users_count": 1,
            "groups_count": 0,
            "teams_count": 2,
            "tos_type": "URL",
            "tos_url": "https://curriki.org",
            "tos_content": "Test content",
            "privacy_policy_type": "Parent",
            "privacy_policy_url": null,
            "privacy_policy_content": null,
            "branding": {
                "primary_color": "#515151",
                "secondary_color": "#515151",
                "tertiary_color": "#515151",
                "primary_font_family": "open sans",
                "secondary_font_family": "open sans"
            },
            "allowed_visibility_type_id": [
                {
                    "id": 1,
                    "name": "private",
                    "display_name": "Private (only Me)"
                },
                {
                    "id": 3,
                    "name": "global",
                    "display_name": "My Org + Parent and Child Org"
                }
            ]
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{id}/index

URL Parameters

id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Query to search suborganization against

size  integer optional  

Size to show per page records

order_by_column  string optional  

To sort data with specific column

order_by_type  string optional  

To sort data in ascending or descending order

Get Organization Media Sources

requires authentication

Get the media sources of specific organization for image and videos .

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/media-sources" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/media-sources"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/media-sources',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "mediaSources": [
        {
            "id": 1,
            "name": "My device",
            "media_type": "Video",
            "created_at": "2022-05-09T10:18:09.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 1,
                "h5p_library": "H5P.AudioRecorder 1.0"
            }
        },
        {
            "id": 2,
            "name": "YouTube",
            "media_type": "Video",
            "created_at": "2022-05-09T10:18:09.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 2,
                "h5p_library": "H5P.CoursePresentation 1.22"
            }
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/media-sources

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Update Suborganization Media Sources

requires authentication

Update the media sources for specified suborganization.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/update-media-sources" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"media_source_ids\": 1,
    \"h5p_library\": \"H5P.AudioRecorder 1.0\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/update-media-sources"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "media_source_ids": 1,
    "h5p_library": "H5P.AudioRecorder 1.0"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/update-media-sources',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'media_source_ids' => 1,
            'h5p_library' => 'H5P.AudioRecorder 1.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   'message' => 'Media sources has been updated successfully.',
}
 

Example response (500):


{
    "errors": [
        "Failed to update Media sources."
    ]
}
 

Example response (200):


{
    "message": "Media sources has been updated successfully.",
    "mediaSources": [
        {
            "id": 1,
            "name": "My device",
            "media_type": "Video",
            "created_at": "2022-05-09T10:18:09.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 1,
                "h5p_library": "H5P.AudioRecorder 1.0"
            }
        },
        {
            "id": 7,
            "name": "My device",
            "media_type": "Image",
            "created_at": "2022-05-09T10:18:09.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 7,
                "h5p_library": "H5P.CoursePresentation 1.22"
            }
        }
    ]
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/update-media-sources

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

media_source_ids  string[]  

Ids of a media source type

media_source_ids[].media_source_id  string  

media_source_ids[].h5p_library  string optional  

h5p_library  string optional  

optional Name of H5p Library

Get Media Sources

requires authentication

Get the media sources for image and videos.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/media-sources" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/media-sources"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/media-sources',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "mediaSources": {
        "Video": [
            {
                "id": 1,
                "name": "My device",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 2,
                "name": "YouTube",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 3,
                "name": "Kaltura",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 4,
                "name": "Safari Montage",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 5,
                "name": "BrightCove",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 6,
                "name": "Vimeo",
                "media_type": "Video",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            }
        ],
        "Image": [
            {
                "id": 7,
                "name": "My device",
                "media_type": "Image",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 8,
                "name": "Pexels",
                "media_type": "Image",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            },
            {
                "id": 9,
                "name": "Safari Montage",
                "media_type": "Image",
                "created_at": "2022-05-09T10:18:09.000000Z",
                "updated_at": null,
                "deleted_at": null
            }
        ]
    }
}
 

Request      

GET api/v1/media-sources

20. XAPI

An XAPI Controller Class Handles xAPI operations.

Save an xAPI Statement

Creates a new statement in the database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/xapi/statements" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"statement\": \"dolorem\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/xapi/statements"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "statement": "dolorem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/xapi/statements',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'statement' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "id": "61ffa986-1dcc-3df0-94d8-a09384b197a7"
}
 

Example response (500):


{
    "errors": [
        "The statement could not be saved due to an error"
    ]
}
 

Request      

POST api/v1/xapi/statements

Body Parameters

statement  string  

21. Admin/Lti Tool Settings

APIs for Lti tool settings on admin panel. The doc block for LTIToolSettingsController will be updated later.

Delete Lti Tool

Delete Lti Tool Setting

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/lti-tool-settings/9" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lti-tool-settings/9"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/lti-tool-settings/9',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/suborganizations/{suborganization_id}/lti-tool-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

Id of LTI tool setting Exp: 1

suborganization  integer  

Id of a suborganization Exp: 1

Get LTI Tool Type List

Get filter based media sources list for specified suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/lti-tool-type" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lti-tool-type"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/lti-tool-type',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 3,
            "name": "Kaltura",
            "media_type": "Video",
            "created_at": "2022-05-09T08:18:12.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 3,
                "h5p_library": null,
                "lti_tool_settings_status": true,
                "created_at": "2022-11-01T14:27:41.000000Z",
                "updated_at": "2022-11-02T12:54:59.000000Z"
            }
        },
        {
            "id": 6,
            "name": "Vimeo",
            "media_type": "Video",
            "created_at": "2022-05-09T08:18:12.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 6,
                "h5p_library": null,
                "lti_tool_settings_status": true,
                "created_at": "2022-11-01T14:27:41.000000Z",
                "updated_at": "2022-11-02T12:54:59.000000Z"
            }
        },
        {
            "id": 13,
            "name": "Komodo",
            "media_type": "Video",
            "created_at": "2022-08-01T09:44:58.000000Z",
            "updated_at": null,
            "deleted_at": null,
            "pivot": {
                "organization_id": 1,
                "media_source_id": 13,
                "h5p_library": null,
                "lti_tool_settings_status": true,
                "created_at": "2022-11-01T14:27:41.000000Z",
                "updated_at": "2022-11-02T12:55:00.000000Z"
            }
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/lti-tool-type

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

22. Team

APIs for team management

Invite Team

Invite a team member while creating a team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/invite" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"abby@curriki.org\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/invite"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "abby@curriki.org"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/invite',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1.0,
            'email' => 'abby@curriki.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "invited": true
}
 

Example response (400):


{
    "invited": false
}
 

Request      

POST api/v1/teams/invite

Body Parameters

id  number  

The ID of a user

email  string  

The email corresponded to the user

Invite Team Member

Invite a team member to the team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/1/invite-member" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"abby@curriki.org\",
    \"role_id\": \"error\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/1/invite-member"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "abby@curriki.org",
    "role_id": "error"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/1/invite-member',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'abby@curriki.org',
            'role_id' => 'error',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been invited to the team successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to invite user to the team."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to invite user to the team."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/invite-member

URL Parameters

team_id  integer  

The ID of the team.

team  string  

The Id of a team

Body Parameters

email  string  

The email of the user

role_id  string  

Invite Team Members

Invite a bundle of users to the team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/teams/5/invite-members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"users\": [
        \"iste\"
    ],
    \"note\": \"sunt\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams/5/invite-members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "users": [
        "iste"
    ],
    "note": "sunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/teams/5/invite-members',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'users' => [
                'iste',
            ],
            'note' => 'sunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Users have been invited to the team successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to invite users to the team."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to invite users to the team."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/teams/{team_id}/invite-members

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

team_id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

Body Parameters

users  string[]  

The array of the users

users[].id  string  

users[].role_id  string  

users[].email  string  

Must be a valid email address.

note  string optional  

Remove Team Member

remove a team member to the team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/14/remove" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"lukas.kuphal@example.net\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/14/remove"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "lukas.kuphal@example.net"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/14/remove',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'email' => 'lukas.kuphal@example.net',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been removed from the team successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove user from the team."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove user from the team."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/remove

URL Parameters

team_id  integer  

The ID of the team.

team  string  

The Id of a team

Body Parameters

id  integer  

The Id of the user

email  string optional  

Must be a valid email address.

Add Projects to the Team

Add projects to the team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/6/add-projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        1
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/6/add-projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ids": [
        1
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/6/add-projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ids' => [
                1,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Projects have been added to the team successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to add projects to the team."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to add projects to the team."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/add-projects

URL Parameters

team_id  integer  

The ID of the team.

team  string  

The Id of a team

Body Parameters

ids  string[]  

The list of the project Ids to add

Remove Project from the Team

Remove a project from the team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/19/remove-project" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/19/remove-project"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/19/remove-project',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project has been removed from the team successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove project from the team."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove project from the team."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/remove-project

URL Parameters

team_id  integer  

The ID of the team.

team  string  

The Id of a team

Body Parameters

id  integer  

The Id of the project to remove

Add Members to the Team Project

Add members to a specified project of specified team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/7/projects/3024/add-members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        1
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/7/projects/3024/add-members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ids": [
        1
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/7/projects/3024/add-members',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ids' => [
                1,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Members have been added to the team project successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to add members to the team project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to add members to the team project."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/projects/{project_id}/add-members

URL Parameters

team_id  integer  

The ID of the team.

project_id  integer  

The ID of the project.

team  string  

The Id of a team

project  string  

The Id of a project

Body Parameters

ids  string[]  

The list of the member Ids to add

Remove Member from the Team Project

Remove member from a specified project of specified team.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/teams/12/projects/3024/remove-member" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"bwyman@example.com\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/teams/12/projects/3024/remove-member"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "bwyman@example.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/teams/12/projects/3024/remove-member',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'email' => 'bwyman@example.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Member has been removed from the team project successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove member from the team project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove member from the team project."
    ]
}
 

Request      

POST api/v1/teams/{team_id}/projects/{project_id}/remove-member

URL Parameters

team_id  integer  

The ID of the team.

project_id  integer  

The ID of the project.

team  string  

The Id of a team

project  string  

The Id of a project

Body Parameters

id  integer  

The Id of the member to remove

email  string optional  

Must be a valid email address.

Get All Organization Teams

Get a list of the teams of an Organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/get-teams" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/get-teams"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/get-teams',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/get-teams

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get All Organization Teams for Admin

Get a list of the teams of an Organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/get-admin-teams" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"bqieqwrgehkwbfyesgvi\",
    \"order_by_column\": \"created_at\",
    \"order_by_type\": \"asc\",
    \"size\": 29
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/get-admin-teams"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "bqieqwrgehkwbfyesgvi",
    "order_by_column": "created_at",
    "order_by_type": "asc",
    "size": 29
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/get-admin-teams',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'bqieqwrgehkwbfyesgvi',
            'order_by_column' => 'created_at',
            'order_by_type' => 'asc',
            'size' => 29,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/get-admin-teams

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

query  string optional  

Must not be greater than 255 characters.

order_by_column  string optional  

Must be one of name or created_at.

order_by_type  string optional  

Must be one of asc or desc.

size  integer optional  

Must not be greater than 100.

Get User Team Permissions

Get the logged-in user's team permissions in the suborganization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/team/6/team-permissions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/team/6/team-permissions"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/team/6/team-permissions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "teamPermissions": {
        "activeRole": "admin",
        "roleId": 1,
        "Team": [
            "team:add-team-user",
            "team:remove-team-user",
            "team:add-project",
            "team:remove-project",
            "team:add-member-project",
            "team:remove-member-project",
            "team:add-playlist",
            "team:edit-playlist",
            "team:delete-playlist",
            "team:add-activity",
            "team:edit-activity",
            "team:delete-activity",
            "team:share-project",
            "team:share-activity",
            "team:share-playlist",
            "team:assign-team-role"
        ]
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/team/{team_id}/team-permissions

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

team_id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

Update Team Member Role

Update the specified user role of a team.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganization/1/team/4/update-team-member-role" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"12\",
    \"role_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/team/4/update-team-member-role"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "12",
    "role_id": "1"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganization/1/team/4/update-team-member-role',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => '12',
            'role_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to update team member role."
    ]
}
 

Example response (200):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

PUT api/v1/suborganization/{suborganization_id}/team/{team_id}/update-team-member-role

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

team_id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The id of a team

Body Parameters

user_id  inetger  

The id of a user

role_id  inetger  

The id of a team role

Get All Teams

Get a list of the teams of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/teams" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/teams',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/teams

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Create Team

Create a new team in storage for a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/teams" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 13,
    \"name\": \"Test Team\",
    \"description\": \"This is a test team.\",
    \"users\": [
        {
            \"id\": \"quo\",
            \"role_id\": \"perferendis\",
            \"email\": \"fred39@example.net\"
        }
    ],
    \"projects\": \"d\",
    \"note\": \"wwwqabepm\",
    \"noovo_group_title\": \"Test_Group\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 13,
    "name": "Test Team",
    "description": "This is a test team.",
    "users": [
        {
            "id": "quo",
            "role_id": "perferendis",
            "email": "fred39@example.net"
        }
    ],
    "projects": "d",
    "note": "wwwqabepm",
    "noovo_group_title": "Test_Group"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/teams',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 13,
            'name' => 'Test Team',
            'description' => 'This is a test team.',
            'users' => [
                [
                    'id' => 'quo',
                    'role_id' => 'perferendis',
                    'email' => 'fred39@example.net',
                ],
            ],
            'projects' => 'd',
            'note' => 'wwwqabepm',
            'noovo_group_title' => 'Test_Group',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create team. Please try again later."
    ]
}
 

Example response (201):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/teams

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

organization_id  integer  

name  string  

Name of a team

description  string  

Description of a team

users  object[] optional  

users[].id  string  

users[].role_id  string  

users[].email  string  

Must be a valid email address.

projects  string[] optional  

Must not have more than 1 items.

note  string optional  

Must not be greater than 200 characters.

noovo_group_title  string optional  

Title of a Noovo Group

Get Team

Get the specified team detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/teams/20" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams/20"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/teams/20',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/teams/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

Update Team

Update the specified team of a user.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganization/1/teams/13" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Test Team\",
    \"description\": \"This is a test team.\",
    \"noovo_group_title\": \"Test_Group\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams/13"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Test Team",
    "description": "This is a test team.",
    "noovo_group_title": "Test_Group"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganization/1/teams/13',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Test Team',
            'description' => 'This is a test team.',
            'noovo_group_title' => 'Test_Group',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to update team."
    ]
}
 

Example response (200):


{
    "data": [
        {
            "id": 52,
            "organization_id": 1,
            "name": "Team 12",
            "description": "desc",
            "indexing": null,
            "users": [
                {
                    "id": 1,
                    "first_name": "Test",
                    "last_name": "Test",
                    "email": "test@test.com",
                    "projects": [
                        {
                            "id": 6,
                            "name": "The Science of Golf",
                            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
                            "thumb_url": "",
                            "created_at": "2021-08-17T09:52:34.000000Z",
                            "updated_at": "2021-08-17T09:52:34.000000Z",
                            "deleted_at": null,
                            "shared": true,
                            "is_public": false,
                            "starter_project": false,
                            "elasticsearch": false,
                            "organization_id": null,
                            "organization_visibility_type_id": null,
                            "cloned_from": 1,
                            "clone_ctr": 0,
                            "order": 1,
                            "is_user_starter": false,
                            "status": 1,
                            "indexing": null,
                            "original_user": null,
                            "team_id": null,
                            "pivot": {
                                "user_id": 1,
                                "project_id": 6,
                                "role": "owner",
                                "created_at": "2021-08-17T09:52:34.000000Z",
                                "updated_at": "2021-08-17T09:52:34.000000Z"
                            }
                        }
                    ],
                    "role": {
                        "id": 1,
                        "name": "admin",
                        "display_name": "Team Administrator",
                        "created_at": "2021-07-19T11:39:05.000000Z",
                        "updated_at": null
                    }
                }
            ],
            "invited_emails": [],
            "projects": [],
            "created_at": "2021-07-20T11:02:20.000000Z",
            "updated_at": "2021-07-20T11:02:20.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "last": "http://localhost:8000/api/v1/suborganization/1/teams?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/suborganization/1/teams",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

PUT api/v1/suborganization/{suborganization_id}/teams/{id}

PATCH api/v1/suborganization/{suborganization_id}/teams/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

Body Parameters

name  string  

Name of a team

description  string  

Description of a team

noovo_group_title  string optional  

Title of a Noovo Group

Remove Team

Remove the specified team of a user.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganization/1/teams/11" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams/11"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganization/1/teams/11',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Team has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete team."
    ]
}
 

Request      

DELETE api/v1/suborganization/{suborganization_id}/teams/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the team.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

Push Project to Noovo

script to push project from curriki to noovo mapped device.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/teams/4/projects/3024/export-projects-to-noovo" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/teams/4/projects/3024/export-projects-to-noovo"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/teams/4/projects/3024/export-projects-to-noovo',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Indexing request for this team has been made successfully!"
}
 

Example response (404):


{
    "message": "No query results for model [Team] Id"
}
 

Example response (500):


{
    "errors": [
        "Noovo Client id or group id is missing.",
        "Team must be finalized before requesting the indexing."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/teams/{team_id}/projects/{project_id}/export-projects-to-noovo

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

team_id  integer  

The ID of the team.

project_id  integer  

The ID of the project.

suborganization  string  

The Id of a suborganization

team  string  

The Id of a team

project  string  

The Id of a project

23. Author Tag

APIs for author tags management

Get Author Tags

Get a list of all author tags.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/author-tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 210,
    \"query\": \"gfvyhjexjkktmtpulnpyaslgcbulrhuksvgdyatcpjvjpncllohtgyvjqwfzufmfdxewjtewfwvanqejaczwahkayfrxxjaqz\",
    \"order_by_column\": \"name\",
    \"order_by_type\": \"DESC\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/author-tags"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 210,
    "query": "gfvyhjexjkktmtpulnpyaslgcbulrhuksvgdyatcpjvjpncllohtgyvjqwfzufmfdxewjtewfwvanqejaczwahkayfrxxjaqz",
    "order_by_column": "name",
    "order_by_type": "DESC"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/author-tags',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 210,
            'query' => 'gfvyhjexjkktmtpulnpyaslgcbulrhuksvgdyatcpjvjpncllohtgyvjqwfzufmfdxewjtewfwvanqejaczwahkayfrxxjaqz',
            'order_by_column' => 'name',
            'order_by_type' => 'DESC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Audio",
            "order": 1,
            "organization_id": "1",
            "created_at": "2022-01-10T13:09:36.000000Z",
            "updated_at": "2022-01-10T13:09:36.000000Z"
        },
        {
            "id": 2,
            "name": "Video",
            "order": 1,
            "organization_id": "2",
            "created_at": "2022-01-10T13:09:44.000000Z",
            "updated_at": "2022-01-10T13:09:44.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/author-tags?page=1",
        "last": "http://localhost:8000/api/v1/author-tags?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/author-tags",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/author-tags

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

size  integer optional  

Must not be greater than 255.

query  string optional  

Must not be greater than 255 characters.

order_by_column  string optional  

Must be one of order or name.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Create Author Tag

Create a new author tag.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/author-tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Audio\",
    \"order\": 1,
    \"organization_id\": 11
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/author-tags"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Audio",
    "order": 1,
    "organization_id": 11
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/author-tags',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Audio',
            'order' => 1,
            'organization_id' => 11,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create author tag. Please try again later."
    ]
}
 

Example response (201):


{
    "author-tag": {
        "id": 1,
        "name": "Audio",
        "order": 1,
        "organization_id": "1",
        "created_at": "2022-01-10T13:09:36.000000Z",
        "updated_at": "2022-01-10T13:09:36.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/author-tags

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Author Tag name.

order  integer  

at what order it should appear.

organization_id  integer  

Get Author Tag

Get the specified author tag.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/author-tags/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/author-tags/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/author-tags/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "author-tag": {
        "id": 1,
        "name": "Audio",
        "order": 1,
        "organization_id": "1",
        "created_at": "2022-01-10T13:09:36.000000Z",
        "updated_at": "2022-01-10T13:09:36.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/author-tags/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the author tag.

suborganization  string  

The Id of a suborganization

authorTag  string  

The Id of a Author Tag item

Remove Author Tag

Remove the specified author tag.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/author-tags/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/author-tags/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/author-tags/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Author Tag has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete author tag."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/author-tags/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the author tag.

suborganization  string  

The Id of a suborganization

authorTag  string  

The Id of a author tag item

24. Education Level

APIs for education level management

Get Education Level

Get a list of all education level.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/education-levels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 236,
    \"query\": \"ggqfevztpafrnadrbzztmnihvcjrsgezzwkuqnfqddmbsjbognlshbyqyunzmbuhpmwztyfiqqlbsynnoltyrwwottrubeeqpogskumkrnsxceguypjffovnlippnroqtukqgsmlsfsttcsjerqmoevujvwqzdelcjtqfyqvfuweecaljiwpwentzjkejiaqqhevmaroezqatxfuivekeuhrzth\",
    \"order_by_column\": \"name\",
    \"order_by_type\": \"asc\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/education-levels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 236,
    "query": "ggqfevztpafrnadrbzztmnihvcjrsgezzwkuqnfqddmbsjbognlshbyqyunzmbuhpmwztyfiqqlbsynnoltyrwwottrubeeqpogskumkrnsxceguypjffovnlippnroqtukqgsmlsfsttcsjerqmoevujvwqzdelcjtqfyqvfuweecaljiwpwentzjkejiaqqhevmaroezqatxfuivekeuhrzth",
    "order_by_column": "name",
    "order_by_type": "asc"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/education-levels',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 236,
            'query' => 'ggqfevztpafrnadrbzztmnihvcjrsgezzwkuqnfqddmbsjbognlshbyqyunzmbuhpmwztyfiqqlbsynnoltyrwwottrubeeqpogskumkrnsxceguypjffovnlippnroqtukqgsmlsfsttcsjerqmoevujvwqzdelcjtqfyqvfuweecaljiwpwentzjkejiaqqhevmaroezqatxfuivekeuhrzth',
            'order_by_column' => 'name',
            'order_by_type' => 'asc',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Grade A",
            "order": 1,
            "organization_id": "1",
            "created_at": "2022-01-07T13:51:38.000000Z",
            "updated_at": "2022-01-07T13:51:38.000000Z"
        },
        {
            "id": 2,
            "name": "Grade B",
            "order": 1,
            "organization_id": "2",
            "created_at": "2022-01-07T13:51:56.000000Z",
            "updated_at": "2022-01-07T13:51:56.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/education-levels?page=1",
        "last": "http://localhost:8000/api/v1/education-levels?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/education-levels",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/education-levels

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

size  integer optional  

Must not be greater than 255.

query  string optional  

Must not be greater than 255 characters.

order_by_column  string optional  

Must be one of order or name.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Create Education Level

Create a new education level.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/education-levels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Special Education\",
    \"order\": 1,
    \"organization_id\": 4
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/education-levels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Special Education",
    "order": 1,
    "organization_id": 4
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/education-levels',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Special Education',
            'order' => 1,
            'organization_id' => 4,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create education level. Please try again later."
    ]
}
 

Example response (201):


{
    "education-level": {
        "id": 1,
        "name": "Grade A",
        "order": "1",
        "organization_id": "1",
        "created_at": "2022-01-07T13:51:56.000000Z",
        "updated_at": "2022-01-07T13:51:56.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/education-levels

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Education Level name.

order  integer  

at what order it should appear.

organization_id  integer  

Get Education Level

Get the specified education level.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/education-levels/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/education-levels/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/education-levels/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "education-level": {
        "id": 1,
        "name": "Grade A",
        "order": "1",
        "organization_id": "1",
        "created_at": "2022-01-07T13:51:56.000000Z",
        "updated_at": "2022-01-07T13:51:56.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/education-levels/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the education level.

suborganization  string  

The Id of a suborganization

EducationLevel  string  

The Id of a Education Level item

Remove Education Level

Remove the specified education level.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/education-levels/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/education-levels/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/education-levels/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Education Level has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete education level."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/education-levels/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the education level.

suborganization  string  

The Id of a suborganization

educationLevel  string  

The Id of a education level item

25. Subject

APIs for subject management

Get Subjects

Get a list of all subjects.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/subjects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"size\": 97,
    \"query\": \"qphhgxhdzzvrziyujthqxwkcpmyfadlfifywvguvwopylxziloytszuscfaarurapjjxzaxdfarjwvubutkhcdfykhfhtsgwvoquwylubvtesiieiaywskkjewbeltyjzkbajpefbafhwlnbroeqpdsooxkicufvoujmojjhibclsbjaqohxflblvmcriimwagsxdrlgbre\",
    \"order_by_column\": \"order\",
    \"order_by_type\": \"DESC\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/subjects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "size": 97,
    "query": "qphhgxhdzzvrziyujthqxwkcpmyfadlfifywvguvwopylxziloytszuscfaarurapjjxzaxdfarjwvubutkhcdfykhfhtsgwvoquwylubvtesiieiaywskkjewbeltyjzkbajpefbafhwlnbroeqpdsooxkicufvoujmojjhibclsbjaqohxflblvmcriimwagsxdrlgbre",
    "order_by_column": "order",
    "order_by_type": "DESC"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/subjects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'size' => 97,
            'query' => 'qphhgxhdzzvrziyujthqxwkcpmyfadlfifywvguvwopylxziloytszuscfaarurapjjxzaxdfarjwvubutkhcdfykhfhtsgwvoquwylubvtesiieiaywskkjewbeltyjzkbajpefbafhwlnbroeqpdsooxkicufvoujmojjhibclsbjaqohxflblvmcriimwagsxdrlgbre',
            'order_by_column' => 'order',
            'order_by_type' => 'DESC',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Math",
            "order": 1,
            "organization_id": "1",
            "created_at": "2022-01-06T11:41:46.000000Z",
            "updated_at": "2022-01-06T11:41:46.000000Z"
        },
        {
            "id": 3,
            "name": "English",
            "order": 2,
            "organization_id": "2",
            "created_at": "2022-01-06T11:59:17.000000Z",
            "updated_at": "2022-01-06T11:59:17.000000Z"
        }
    ],
    "links": {
        "first": "http://localhost:8000/api/v1/subjects?page=1",
        "last": "http://localhost:8000/api/v1/subjects?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://localhost:8000/api/v1/subjects",
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/subjects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

size  integer optional  

Must not be greater than 255.

query  string optional  

Must not be greater than 255 characters.

order_by_column  string optional  

Must be one of order.

order_by_type  string optional  

Must be one of asc, desc, ASC, or DESC.

Create Subject

Create a new subject.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/subjects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Special Education\",
    \"order\": 1,
    \"organization_id\": 16
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/subjects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Special Education",
    "order": 1,
    "organization_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/subjects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Special Education',
            'order' => 1,
            'organization_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create subject. Please try again later."
    ]
}
 

Example response (201):


{
    "subject": {
        "id": 4,
        "name": "English",
        "order": 1,
        "organization_id": "1",
        "created_at": "2022-01-06T11:59:52.000000Z",
        "updated_at": "2022-01-06T11:59:52.000000Z"
    }
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/subjects

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

name  string  

Education Level name.

order  integer  

At what order it should appear.

organization_id  integer  

Get Subject

Get the specified subject.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/subjects/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/subjects/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/subjects/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "subject": {
        "id": 4,
        "name": "English",
        "order": 1,
        "organization_id": "1",
        "created_at": "2022-01-06T11:59:52.000000Z",
        "updated_at": "2022-01-06T11:59:52.000000Z"
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/subjects/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the subject.

suborganization  string  

The Id of a suborganization

subject  string  

The Id of a subject item

Remove Subject

Remove the specified subject.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/subjects/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/subjects/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/subjects/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Subject has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete subject."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/subjects/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the subject.

suborganization  string  

The Id of a suborganization

subject  string  

The Id of a subject item

26. LMS Settings

APIs for LMS settings used for publishing

Get Projects based on LMS/LTI settings

Get a list of projects that belong to the same LMS/LTI settings

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/lms/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lti_client_id\": 12,
    \"user_email\": \"jermaine30@example.com\",
    \"course_id\": \"atque\",
    \"api_domain_url\": \"commodi\",
    \"course_name\": \"fugit\",
    \"lms_url\": \"quo\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms/projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lti_client_id": 12,
    "user_email": "jermaine30@example.com",
    "course_id": "atque",
    "api_domain_url": "commodi",
    "course_name": "fugit",
    "lms_url": "quo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/lms/projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lti_client_id' => 12,
            'user_email' => 'jermaine30@example.com',
            'course_id' => 'atque',
            'api_domain_url' => 'commodi',
            'course_name' => 'fugit',
            'lms_url' => 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "projects": [
        {
            "id": 1,
            "name": "Test Project",
            "description": "This is a test project.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "gcr_project_visibility": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Project",
            "description": "This is a test math project.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

POST api/v1/go/lms/projects

Body Parameters

lti_client_id  integer  

The Id of a lti client

user_email  string  

Must be a valid email address.

course_id  string  

api_domain_url  string  

course_name  string  

lms_url  string  

The url of a lms

GET api/v1/go/lms/project/{project_id}

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/lms/project/3024" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms/project/3024"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/lms/project/3024',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "No query results for model [App\\Models\\Project] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
    "line": 385,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
            "line": 332,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Exceptions\\Handler.php",
            "line": 53,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\nunomaduro\\collision\\src\\Adapters\\Laravel\\ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 172,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/go/lms/project/{project_id}

URL Parameters

project_id  integer  

The ID of the project.

POST api/v1/go/lms/activities

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/lms/activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"osacmdzagjfouhfmtbuyefzd\",
    \"from\": 6,
    \"subject\": \"rcwtbydkwburactuswwjjfmoesjfypjsyxtvkcppvcftwlktobmzbzvtufzepxlldwruanvyzbvzlhjfwriwpphhikntqvcsszzspfk\",
    \"level\": \"mwqohborvshsnvxixuihctegnhbylkeyjtsfiyvctalgggwoszdoppteceidzwieivaimnpfmhjwgosmrpsoipxrhbbrdmtgzyarsxxvyovhytvr\",
    \"start\": \"tfhdilbvokxjecbvkgtaoqfkfrctnbcmshdamuxmrkjipmmcxhdierjtrquiorlopxjbavnohdonjbcuudidcjlqdluptazbvleswrnifgigbobbxjnqxjnpmlcelaqshruwmmkncwprqrtflwlnwj\",
    \"end\": \"ntnmuxorjnsojlyedzawsmrnfvmherkdxnxatetzzvpnpxflsemtrdqbuhhrhbtjeecnkyapwlhlhhxaantnftfgzekcjzdufnglczprhmxddlllrowgsbsmglsetuutjhphsaefyybrndbznhhwsgojaxxyeujxbdvrxkpyfvbneukmxfpst\",
    \"author\": \"ngizhehaadltcrofxxqracsqdpyzvkdkdikxunomqzthrgrtzdgjdmoagqusbzzwwuwfayimwymowweynusglnslvpjquktuottrdxfevsngghvnswmya\",
    \"private\": 18,
    \"userEmail\": \"yddwhgiggjqbbthxfdlexjonnczcwggswjsnepxkkatztjcoxhcwouqyvtlusdiddwqbenkcvkcwihbfbtdoxxerxnqtboroeiawdqjgsrslrjsgjkpglykoctpufumtiqagrkbnbvtdti\",
    \"ltiClientId\": \"excepturi\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms/activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "osacmdzagjfouhfmtbuyefzd",
    "from": 6,
    "subject": "rcwtbydkwburactuswwjjfmoesjfypjsyxtvkcppvcftwlktobmzbzvtufzepxlldwruanvyzbvzlhjfwriwpphhikntqvcsszzspfk",
    "level": "mwqohborvshsnvxixuihctegnhbylkeyjtsfiyvctalgggwoszdoppteceidzwieivaimnpfmhjwgosmrpsoipxrhbbrdmtgzyarsxxvyovhytvr",
    "start": "tfhdilbvokxjecbvkgtaoqfkfrctnbcmshdamuxmrkjipmmcxhdierjtrquiorlopxjbavnohdonjbcuudidcjlqdluptazbvleswrnifgigbobbxjnqxjnpmlcelaqshruwmmkncwprqrtflwlnwj",
    "end": "ntnmuxorjnsojlyedzawsmrnfvmherkdxnxatetzzvpnpxflsemtrdqbuhhrhbtjeecnkyapwlhlhhxaantnftfgzekcjzdufnglczprhmxddlllrowgsbsmglsetuutjhphsaefyybrndbznhhwsgojaxxyeujxbdvrxkpyfvbneukmxfpst",
    "author": "ngizhehaadltcrofxxqracsqdpyzvkdkdikxunomqzthrgrtzdgjdmoagqusbzzwwuwfayimwymowweynusglnslvpjquktuottrdxfevsngghvnswmya",
    "private": 18,
    "userEmail": "yddwhgiggjqbbthxfdlexjonnczcwggswjsnepxkkatztjcoxhcwouqyvtlusdiddwqbenkcvkcwihbfbtdoxxerxnqtboroeiawdqjgsrslrjsgjkpglykoctpufumtiqagrkbnbvtdti",
    "ltiClientId": "excepturi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/lms/activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'osacmdzagjfouhfmtbuyefzd',
            'from' => 6,
            'subject' => 'rcwtbydkwburactuswwjjfmoesjfypjsyxtvkcppvcftwlktobmzbzvtufzepxlldwruanvyzbvzlhjfwriwpphhikntqvcsszzspfk',
            'level' => 'mwqohborvshsnvxixuihctegnhbylkeyjtsfiyvctalgggwoszdoppteceidzwieivaimnpfmhjwgosmrpsoipxrhbbrdmtgzyarsxxvyovhytvr',
            'start' => 'tfhdilbvokxjecbvkgtaoqfkfrctnbcmshdamuxmrkjipmmcxhdierjtrquiorlopxjbavnohdonjbcuudidcjlqdluptazbvleswrnifgigbobbxjnqxjnpmlcelaqshruwmmkncwprqrtflwlnwj',
            'end' => 'ntnmuxorjnsojlyedzawsmrnfvmherkdxnxatetzzvpnpxflsemtrdqbuhhrhbtjeecnkyapwlhlhhxaantnftfgzekcjzdufnglczprhmxddlllrowgsbsmglsetuutjhphsaefyybrndbznhhwsgojaxxyeujxbdvrxkpyfvbneukmxfpst',
            'author' => 'ngizhehaadltcrofxxqracsqdpyzvkdkdikxunomqzthrgrtzdgjdmoagqusbzzwwuwfayimwymowweynusglnslvpjquktuottrdxfevsngghvnswmya',
            'private' => 18,
            'userEmail' => 'yddwhgiggjqbbthxfdlexjonnczcwggswjsnepxkkatztjcoxhcwouqyvtlusdiddwqbenkcvkcwihbfbtdoxxerxnqtboroeiawdqjgsrslrjsgjkpglykoctpufumtiqagrkbnbvtdti',
            'ltiClientId' => 'excepturi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/go/lms/activities

Body Parameters

query  string optional  

Must not be greater than 255 characters.

from  integer optional  

subject  string optional  

Must not be greater than 255 characters.

level  string optional  

Must not be greater than 255 characters.

start  string optional  

Must not be greater than 255 characters.

end  string optional  

Must not be greater than 255 characters.

author  string optional  

Must not be greater than 255 characters.

private  integer optional  

userEmail  string  

Must not be greater than 255 characters.

ltiClientId  string  

Get organizations based on LMS/LTI settings

Get a list of organizations that belong to the same LMS/LTI settings

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/lms/organizations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"userEmail\": \"alias\",
    \"ltiClientId\": \"earum\",
    \"lti_client_id\": 12
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms/organizations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "userEmail": "alias",
    "ltiClientId": "earum",
    "lti_client_id": 12
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/lms/organizations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'userEmail' => 'alias',
            'ltiClientId' => 'earum',
            'lti_client_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "Curriki Studio",
            "description": "Curriki Studio, default organization.",
            "image": "/storage/organizations/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
            "favicon": "/storage/organizations/favicon/PlPVBtEVfKEU8PBI1eknYgW3kjIf5YdpILBS0Yyr.png",
            "domain": "currikistudio"
        }
    ]
}
 

Request      

GET api/v1/go/lms/organizations

Body Parameters

userEmail  string  

The email of a user: quo

ltiClientId  string  

lti_client_id  integer  

The Id of a lti client

Get independent Activity based on user_id

Get independent Activity based on user_id of a user who launched the deeplink

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/lms/independent-activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_email\": \"somebody@somewhere.com\",
    \"query\": \"activity title\",
    \"size\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms/independent-activities"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_email": "somebody@somewhere.com",
    "query": "activity title",
    "size": 10
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/lms/independent-activities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_email' => 'somebody@somewhere.com',
            'query' => 'activity title',
            'size' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "errors": [
        "Could not find any independent activity. Please try again later."
    ]
}
 

Example response (200):


{
    "independent-activity": {
        "id": 9,
        "title": "title",
        "type": "h5p",
        "content": "content",
        "description": null,
        "shared": null,
        "order": 0,
        "thumb_url": null,
        "created_at": "2022-06-16T05:28:25.000000Z",
        "updated_at": "2022-06-16T05:28:25.000000Z",
        "gcr_activity_visibility": false,
        "subjects": [
            {
                "id": 1,
                "name": "Arts",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-21T12:41:25.000000Z",
                "updated_at": null
            }
        ],
        "education_levels": [
            {
                "id": 1,
                "name": "Preschool (Ages 0-4)",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:33:20.000000Z",
                "updated_at": null
            }
        ],
        "author_tags": [
            {
                "id": 1,
                "name": "Homework/Assignment",
                "order": null,
                "organization_id": 63,
                "created_at": "2022-04-20T17:38:02.000000Z",
                "updated_at": null
            }
        ],
        "source_type": null,
        "source_url": null,
        "organization_visibility_type_id": "1",
        "status": null,
        "status_text": null,
        "indexing": null,
        "indexing_text": "NOT REQUESTED",
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "email_verified_at": "2020-09-11T23:52:44.000000Z",
            "created_at": "2020-04-06T20:47:21.000000Z",
            "updated_at": "2021-05-03T19:24:58.000000Z",
            "first_name": "Abby",
            "last_name": "_",
            "organization_name": "",
            "job_title": "",
            "address": null,
            "phone_number": null,
            "organization_type": null,
            "website": null,
            "deleted_at": null,
            "role": null,
            "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
            "hubspot": true,
            "subscribed": true,
            "subscribed_ip": "192.168.96.10",
            "membership_type_id": 2,
            "temp_password": null
        },
        "h5p_content": null
    }
}
 

Request      

GET api/v1/go/lms/independent-activities

Body Parameters

user_email  string  

The email of a user

query  string optional  

For search-term

size  integer optional  

For pagination

27. Admin/Queues

APIs for queues monitoring on admin panel.

Get All Jobs

Returns the pending or failed jobs paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor/jobs?filter=1&page=1&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor/jobs"
);

const params = {
    "filter": "1",
    "page": "1",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor/jobs',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter'=> '1',
            'page'=> '1',
            'size'=> '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 128,
            "payload": "CloneProject",
            "queue": "default",
            "time": "1 day ago",
            "failed": false,
            "attempt": 1,
            "exception": "N/A"
        },
        {
            "id": 129,
            "payload": "CloneProject",
            "queue": "default",
            "time": "1 day ago",
            "failed": false,
            "attempt": 1,
            "exception": "Unable to clone project"
        }
    ],
    "links": {
        "first": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs?page=1",
        "last": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "path": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs",
        "per_page": "2",
        "to": null,
        "total": 0
    }
}
 

Request      

GET api/v1/queue-monitor/jobs

Query Parameters

filter  string optional  

1 for pending jobs, 2 for failed. Default 1.

page  string optional  

Offset for getting the paginated response, Default 1.

size  string optional  

Limit for getting the paginated records, Default 10.

Retry All Failed Jobs

Retry All Failed Jobs

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor/jobs/retry/all" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor/jobs/retry/all"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor/jobs/retry/all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "All failed jobs has been pushed back onto the queue!"
}
 

Request      

GET api/v1/queue-monitor/jobs/retry/all

Delete All Failed Jobs

Delete All Failed Jobs

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor/jobs/forget/all" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor/jobs/forget/all"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor/jobs/forget/all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "All failed jobs deleted successfully!"
}
 

Request      

GET api/v1/queue-monitor/jobs/forget/all

Retry Specific Failed Job

Retry failed job by ID.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor/jobs/retry/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor/jobs/retry/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor/jobs/retry/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The failed job [1] has been pushed back onto the queue!"
}
 

Request      

GET api/v1/queue-monitor/jobs/retry/{job}

URL Parameters

job  string  

The integer Id of a job.

Delete Specific Failed Job

Delete failed job by ID.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor/jobs/forget/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor/jobs/forget/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor/jobs/forget/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Failed job deleted successfully!"
}
 

Request      

GET api/v1/queue-monitor/jobs/forget/{job}

URL Parameters

job  string  

The integer Id of a job.

Get All Queues Logs

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/queue-monitor?filter=1&page=1&size=10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/queue-monitor"
);

const params = {
    "filter": "1",
    "page": "1",
    "size": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/queue-monitor',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter'=> '1',
            'page'=> '1',
            'size'=> '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 128,
            "job_id": "376471",
            "name": "CloneProject",
            "queue": "default",
            "started_at": "23 hours ago",
            "is_finished": true,
            "time_elapsed": "8.22 s",
            "failed": false,
            "attempt": 1,
            "exception_message": null
        },
        {
            "id": 127,
            "job_id": "376470",
            "name": "CloneActivity",
            "queue": "default",
            "started_at": "23 hours ago",
            "is_finished": true,
            "time_elapsed": "8.17 s",
            "failed": false,
            "attempt": 1,
            "exception_message": null
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=9",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 9,
        "path": "https://www.currikistudio.org/api/v1/admin/queue-monitor",
        "per_page": "2",
        "to": 2,
        "total": 17
    }
}
 

Request      

GET api/v1/queue-monitor

Query Parameters

filter  string optional  

1 for running jobs, 2 for failed, 3 for completed. Default all.

page  string optional  

Offset for getting the paginated response, Default 1.

size  string optional  

Limit for getting the paginated records, Default 10.

28. Admin/Whiteboard

APIs for whiteboard.

Get Whiteboard.

Get Whiteboard.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/get-whiteboard" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"org_id\": 7,
    \"usr_id\": 17,
    \"obj_id\": 17,
    \"obj_type\": \"placeat\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/get-whiteboard"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "org_id": 7,
    "usr_id": 17,
    "obj_id": 17,
    "obj_type": "placeat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/get-whiteboard',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'org_id' => 7,
            'usr_id' => 17,
            'obj_id' => 17,
            'obj_type' => 'placeat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/get-whiteboard

Body Parameters

org_id  integer  

usr_id  integer  

obj_id  integer  

obj_type  string  

29. Admin/LMS Settings

APIs for lms settings on admin panel.

Get All LMS Settings for listing.

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/lms-settings?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/lms-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "lms_url": "https://canvas2.curriki.org",
            "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
            "site_name": "Curriki Canvas Site #2",
            "lms_name": "canvas",
            "lms_access_key": null,
            "lms_access_secret": null,
            "description": "Curriki Canvas Site 2",
            "user_id": 3,
            "created_at": "2020-08-27T18:38:27.000000Z",
            "updated_at": "2020-08-27T18:38:27.000000Z",
            "deleted_at": null,
            "lti_client_id": null,
            "lms_login_id": null,
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2020-10-19T10:44:21.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "domain": "currikistudio",
                "parent_id": null,
                "image": null,
                "created_at": null,
                "updated_at": null,
                "deleted_at": null,
                "self_registration": false,
                "account_id": "test123",
                "api_key": "test",
                "unit_path": "path"
            }
        },
        {
            "id": 2,
            "lms_url": "https://canvas2.curriki.org",
            "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
            "site_name": "Curriki Canvas Site #2",
            "lms_name": "canvas",
            "lms_access_key": null,
            "lms_access_secret": null,
            "description": "Curriki Canvas Site 2",
            "user_id": 726,
            "created_at": "2020-08-27T18:38:27.000000Z",
            "updated_at": "2020-08-27T18:38:27.000000Z",
            "deleted_at": null,
            "lti_client_id": null,
            "lms_login_id": null,
            "user": {
                "id": 726,
                "name": "Ayesha Jaleel",
                "email": "muhammadqamar111@gmail.com",
                "email_verified_at": "2020-09-11T23:56:57.000000Z",
                "created_at": "2020-08-05T15:45:11.000000Z",
                "updated_at": "2020-09-18T15:40:02.000000Z",
                "first_name": "ayesha",
                "last_name": "jaleel",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMAL6MLPZFPPhVHV_T0I4NoKnQvgjZde3NVh9EN_iEIr9hZWv9z1l7kg2gEDKL4ytQQPZc4vfjWwibQoFX35kfBZK8IW4oFkloCWGVjUiVQpIv-l3b0_WZA_vrBtiX__rDAbbcsK5f_qQ6Q46PlNYwZpFrSb5sg63w\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YEG1H6Z_EdBO9DcPh7Mh4zecJPEER1aZQlAuK9EACWTStds1zX0LniLDNBCxyVGW-meWH65rQ5EKowzaeeKw9Whrf0AI\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2NzA0NTczOTgxNzI2MTQ5NDI5IiwiZW1haWwiOiJtdWhhbW1hZHFhbWFyMTExQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiS0JIT3JpdWJyQ0xyTVkzS01MN3lYdyIsIm5hbWUiOiJNdWhhbW1hZCBRYW1hciIsInBpY3R1cmUiOiJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vYS0vQU9oMTRHaDNkcnhWRkQtb2xCRHRHc2JzWC1OOUJXdVNUYmlkcHpNTF9IUDkxZz1zOTYtYyIsImdpdmVuX25hbWUiOiJNdWhhbW1hZCIsImZhbWlseV9uYW1lIjoiUWFtYXIiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDQ0MzYwMiwiZXhwIjoxNjAwNDQ3MjAyLCJqdGkiOiJhZjI1NWI0Y2I5Y2FiMTcwZDc4ZTIzMjljNDU5OTM3MjlmYTA4MTY2In0.JTX2lWgOkyPpdvhP4ueLDR6zw0cY4reT6lK4HgOFJR4sGdhfsclDqD1Tw0r6XfTQQ_AjMnYz9cn-xGH5QyRShu9gGizCt3MeDFU62QiV9wyAgsSeXBxaL0eVD4Jt8eWg0pduaga9424Ov7iEJYT6owtwlPO0FZi9pROjOA9vbj9GUXEEwr-Qejv9UKxKhiZbnQhpyk9PCs5K9eTTdTTFUbNennRb4ZLPKVAek1PXQBMkQBOiH7gf6ycPUd-4HI9wHgj4ARqMpKIGpx-L3J7lod94M-0yRnvlzklivJay9EFvY31xQw1EbB0RcTkMBO9QppIkDGQ9ZxWQyhP1gt4FRA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1600443602681,\"expires_at\":1600447201681,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "172.18.0.12",
                "membership_type_id": 2,
                "temp_password": null
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "domain": "currikistudio",
                "parent_id": null,
                "image": null,
                "created_at": null,
                "updated_at": null,
                "deleted_at": null,
                "self_registration": false,
                "account_id": "test123",
                "api_key": "test",
                "unit_path": "path"
            }
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/lms-settings?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/lms-settings?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "https://www.currikistudio.org/api/v1/admin/lms-settings",
        "per_page": "25",
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/lms-settings

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Create LMS Setting

Creates the new lms setting in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"https:\\/\\/google.com\",
    \"lms_access_token\": \"abcafdgd343asgretgdasgadsfsdfdasgdagsadf\",
    \"site_name\": \"Moodle Curriki\",
    \"lti_client_id\": \"1\",
    \"lms_login_id\": \"1\",
    \"user_id\": 1,
    \"lms_name\": \"Moodle\",
    \"lms_access_key\": \"fdaskfasdkjghadskljgh54r325\",
    \"lms_access_secret\": \"fasdjhjke4wh54354326\",
    \"description\": \"Create LMS Setting for providing access to Moodle.\",
    \"published\": true,
    \"organization_id\": \"aut\",
    \"project_visibility\": true,
    \"playlist_visibility\": true,
    \"activity_visibility\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "https:\/\/google.com",
    "lms_access_token": "abcafdgd343asgretgdasgadsfsdfdasgdagsadf",
    "site_name": "Moodle Curriki",
    "lti_client_id": "1",
    "lms_login_id": "1",
    "user_id": 1,
    "lms_name": "Moodle",
    "lms_access_key": "fdaskfasdkjghadskljgh54r325",
    "lms_access_secret": "fasdjhjke4wh54354326",
    "description": "Create LMS Setting for providing access to Moodle.",
    "published": true,
    "organization_id": "aut",
    "project_visibility": true,
    "playlist_visibility": true,
    "activity_visibility": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/lms-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'https://google.com',
            'lms_access_token' => 'abcafdgd343asgretgdasgadsfsdfdasgdagsadf',
            'site_name' => 'Moodle Curriki',
            'lti_client_id' => '1',
            'lms_login_id' => '1',
            'user_id' => 1,
            'lms_name' => 'Moodle',
            'lms_access_key' => 'fdaskfasdkjghadskljgh54r325',
            'lms_access_secret' => 'fasdjhjke4wh54354326',
            'description' => 'Create LMS Setting for providing access to Moodle.',
            'published' => true,
            'organization_id' => 'aut',
            'project_visibility' => true,
            'playlist_visibility' => true,
            'activity_visibility' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Setting created successfully!",
    "data": [
        "Created Setting Data Array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create setting, please try again later!"
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/lms-settings

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

lms_url  url  

Valid LMS URL.

lms_access_token  string  

Min 20 characters LMS Access Token.

site_name  string  

Site Name.

lti_client_id  string optional  

LTI Client ID for reference.

lms_login_id  string optional  

LMS Login ID for reference.

user_id  integer  

Valid ID of existing user.

lms_name  string optional  

LMS name for which setting is being configured.

lms_access_key  string optional  

Access key for LMS.

lms_access_secret  string  

Secret key is required if Access Key is provided.

description  text  

Brief description.

published  boolean optional  

organization_id  string  

project_visibility  boolean optional  

playlist_visibility  boolean optional  

activity_visibility  boolean optional  

Get LMS Setting

Get the specified lms setting data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/lms-settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "lms_url": "https://canvas2.curriki.org",
        "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
        "site_name": "Curriki Canvas Site #2",
        "lti_client_id": null,
        "lms_login_id": null,
        "lms_name": "canvas",
        "lms_access_key": null,
        "lms_access_secret": null,
        "description": "Curriki Canvas Site 2",
        "user_id": 3,
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "first_name": "Abby",
            "last_name": "_",
            "job_title": "",
            "organization_type": null,
            "is_admin": false,
            "organization_name": ""
        },
        "organization": {
            "id": 1,
            "name": "Curriki Studio",
            "description": "Curriki Studio, default organization.",
            "domain": "currikistudio",
            "parent_id": null,
            "image": null,
            "created_at": null,
            "updated_at": null,
            "deleted_at": null,
            "self_registration": false,
            "account_id": "test123",
            "api_key": "test",
            "unit_path": "path"
        }
    }
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/lms-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  string  

The Id of a lms setting

suborganization  string  

The Id of a suborganization

Update LMS Setting

Updates the lms setting in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"https:\\/\\/google.com\",
    \"lms_access_token\": \"abcafdgd343asgretgdasgadsfsdfdasgdagsadf\",
    \"site_name\": \"Moodle Curriki\",
    \"lti_client_id\": \"1\",
    \"lms_login_id\": \"1\",
    \"user_id\": 1,
    \"lms_name\": \"Moodle\",
    \"lms_access_key\": \"fdaskfasdkjghadskljgh54r325\",
    \"lms_access_secret\": \"fasdjhjke4wh54354326\",
    \"description\": \"Create LMS Setting for providing access to Moodle.\",
    \"published\": false,
    \"organization_id\": \"non\",
    \"project_visibility\": false,
    \"playlist_visibility\": true,
    \"activity_visibility\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "https:\/\/google.com",
    "lms_access_token": "abcafdgd343asgretgdasgadsfsdfdasgdagsadf",
    "site_name": "Moodle Curriki",
    "lti_client_id": "1",
    "lms_login_id": "1",
    "user_id": 1,
    "lms_name": "Moodle",
    "lms_access_key": "fdaskfasdkjghadskljgh54r325",
    "lms_access_secret": "fasdjhjke4wh54354326",
    "description": "Create LMS Setting for providing access to Moodle.",
    "published": false,
    "organization_id": "non",
    "project_visibility": false,
    "playlist_visibility": true,
    "activity_visibility": true
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/lms-settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'https://google.com',
            'lms_access_token' => 'abcafdgd343asgretgdasgadsfsdfdasgdagsadf',
            'site_name' => 'Moodle Curriki',
            'lti_client_id' => '1',
            'lms_login_id' => '1',
            'user_id' => 1,
            'lms_name' => 'Moodle',
            'lms_access_key' => 'fdaskfasdkjghadskljgh54r325',
            'lms_access_secret' => 'fasdjhjke4wh54354326',
            'description' => 'Create LMS Setting for providing access to Moodle.',
            'published' => false,
            'organization_id' => 'non',
            'project_visibility' => false,
            'playlist_visibility' => true,
            'activity_visibility' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "LMS setting data updated successfully!",
    "data": [
        "Updated LMS setting data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update LMS setting, please try again later."
    ]
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/lms-settings/{id}

PATCH api/v1/suborganizations/{suborganization_id}/lms-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  string  

The Id of a lms setting

suborganization  string  

The Id of a suborganization

Body Parameters

lms_url  url  

Valid LMS URL.

lms_access_token  string  

Min 20 characters LMS Access Token.

site_name  string  

Site Name.

lti_client_id  string optional  

LTI Client ID for reference.

lms_login_id  string optional  

LMS Login ID for reference.

user_id  integer  

Valid ID of existing user.

lms_name  string optional  

LMS name for which setting is being configured.

lms_access_key  string optional  

Access key for LMS.

lms_access_secret  string  

Secret key is required if Access Key is provided.

description  text  

Brief description.

published  boolean optional  

organization_id  string  

project_visibility  boolean optional  

playlist_visibility  boolean optional  

activity_visibility  boolean optional  

Delete LMS Setting

Deletes the lms setting from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/lms-settings/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/lms-settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "LMS setting deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to delete LMS setting, please try again later."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/lms-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  string  

The Id of a lms setting

suborganization  string  

The Id of a suborganization

30. User LMS Settings

APIs for LMS settings used for publishing

Authenticated user LMS settings

Display a listing of the LMS settings for authenticated user

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/lms-settings/user/me" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/go/lms-settings/user/me"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/lms-settings/user/me',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "settings": [
            {
                "id": 1,
                "lms_url": "https://moodle39.curriki.org",
                "lms_access_token": "bf06028490c01e1f4538f6206055bc00",
                "site_name": "Moodle Demo",
                "lms_name": "moodle",
                "lms_access_key": "",
                "lms_access_secret": "",
                "description": "Moodle Demo",
                "user_id": 1,
                "lti_client_id": null,
                "created_at": "2020-08-27T18:35:17.000000Z",
                "updated_at": "2020-08-27T18:35:17.000000Z"
            },
            {
                "id": 2,
                "lms_url": "https://moodle39.curriki.org",
                "lms_access_token": "bf06028490c01e1f4538f6206055bc01",
                "site_name": "Moodle Demo",
                "lms_name": "moodle",
                "lms_access_key": "",
                "lms_access_secret": "",
                "description": "Moodle Demo",
                "user_id": 1,
                "lti_client_id": null,
                "created_at": "2020-08-28T18:35:17.000000Z",
                "updated_at": "2020-08-28T18:35:17.000000Z"
            }
        ]
    }
}
 

Request      

GET api/v1/go/lms-settings/user/me

Endpoints

Authenticate the request for channel access.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/broadcasting/auth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/broadcasting/auth"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/broadcasting/auth',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/broadcasting/auth

POST api/broadcasting/auth

Save Access Token

Save MS Graph api access token in the database.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/microsoft-team/get-access-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"cupiditate\"
}"
const url = new URL(
    "http://localhost:8000/api/microsoft-team/get-access-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "code": "cupiditate"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/microsoft-team/get-access-token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'code' => 'cupiditate',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Access token has been saved successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to save the token."
    ]
}
 

Request      

GET api/microsoft-team/get-access-token

URL Parameters

gid  string optional  

User id of current logged in user

Body Parameters

code  string optional  

The stringified of the GAPI authorization token JSON object

GET api/v1/activities/{activity_id}/log-view

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/activities/761/log-view" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/activities/761/log-view"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/activities/761/log-view',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "No query results for model [App\\Models\\Activity] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
    "line": 385,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
            "line": 332,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Exceptions\\Handler.php",
            "line": 53,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\nunomaduro\\collision\\src\\Adapters\\Laravel\\ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 172,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/activities/{activity_id}/log-view

URL Parameters

activity_id  integer  

The ID of the activity.

GET api/v1/playlists/{playlist_id}/log-view

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/playlists/186/log-view" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/playlists/186/log-view"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/playlists/186/log-view',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "No query results for model [App\\Models\\Playlist] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
    "line": 385,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
            "line": 332,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Exceptions\\Handler.php",
            "line": 53,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\nunomaduro\\collision\\src\\Adapters\\Laravel\\ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 172,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/playlists/{playlist_id}/log-view

URL Parameters

playlist_id  integer  

The ID of the playlist.

GET api/v1/projects/{project_id}/log-view

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/projects/3024/log-view" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/projects/3024/log-view"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/projects/3024/log-view',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "No query results for model [App\\Models\\Project] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
    "line": 385,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
            "line": 332,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Exceptions\\Handler.php",
            "line": 53,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\nunomaduro\\collision\\src\\Adapters\\Laravel\\ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 172,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/projects/{project_id}/log-view

URL Parameters

project_id  integer  

The ID of the project.

GET api/v1/organization-types

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/organization-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/organization-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/organization-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "data": [
        {
            "id": 1,
            "name": "k12",
            "label": "K-12",
            "order": 0
        },
        {
            "id": 2,
            "name": "highered",
            "label": "Higher Education",
            "order": 1
        },
        {
            "id": 3,
            "name": "businesscorp",
            "label": "Business/Corporation",
            "order": 2
        },
        {
            "id": 4,
            "name": "nonprofit",
            "label": "Nonprofit",
            "order": 3
        },
        {
            "id": 5,
            "name": "govedu",
            "label": "Government/EDU",
            "order": 4
        },
        {
            "id": 6,
            "name": "other",
            "label": "Other",
            "order": 5
        }
    ]
}
 

Request      

GET api/v1/organization-types

GET api/v1/users/me/redeem/{offerName}

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/me/redeem/ut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/me/redeem/ut"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/me/redeem/ut',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/users/me/redeem/{offerName}

URL Parameters

offerName  string  

Invite Group Member

Invite a group member while creating a group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/invite" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"abby@curriki.org\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/invite"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "abby@curriki.org"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/invite',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1.0,
            'email' => 'abby@curriki.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "invited": true
}
 

Example response (400):


{
    "invited": false
}
 

Request      

POST api/v1/groups/invite

Body Parameters

id  number  

The ID of a user

email  string  

The email corresponded to the user

Invite Group Member

Invite a group member to the group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/16/invite-member" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"abby@curriki.org\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/16/invite-member"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "abby@curriki.org"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/16/invite-member',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'email' => 'abby@curriki.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been invited to the group successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to invite user to the group."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to invite user to the group."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/invite-member

URL Parameters

group_id  integer  

The ID of the group.

Body Parameters

email  string  

The email of the user

Invite Group Members

Invite a bundle of users to the group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/groups/1/invite-members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"users\": [
        \"doloribus\"
    ],
    \"note\": \"mollitia\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups/1/invite-members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "users": [
        "doloribus"
    ],
    "note": "mollitia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/groups/1/invite-members',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'users' => [
                'doloribus',
            ],
            'note' => 'mollitia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Users have been invited to the group successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to invite users to the group."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to invite users to the group."
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/groups/{group_id}/invite-members

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

group_id  integer  

The ID of the group.

Body Parameters

users  string[]  

The array of the users

note  string optional  

Remove Group Member

remove a group member to the group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/18/remove" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"amya79@example.com\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/18/remove"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "amya79@example.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/18/remove',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'email' => 'amya79@example.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User has been removed from the group successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove user from the group."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove user from the group."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/remove

URL Parameters

group_id  integer  

The ID of the group.

Body Parameters

id  integer  

The Id of the user

email  string optional  

Must be a valid email address.

Add Projects to the Group

Add projects to the group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/12/add-projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        1
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/12/add-projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ids": [
        1
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/12/add-projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ids' => [
                1,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Projects have been added to the group successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to add projects to the group."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to add projects to the group."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/add-projects

URL Parameters

group_id  integer  

The ID of the group.

Body Parameters

ids  string[]  

The list of the project Ids to add

Remove Project from the Group

Remove a project from the group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/14/remove-project" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/14/remove-project"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/14/remove-project',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Project has been removed from the group successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove project from the group."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove project from the group."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/remove-project

URL Parameters

group_id  integer  

The ID of the group.

Body Parameters

id  integer  

The Id of the project to remove

Add Members to the Group Project

Add members to a specified project of specified group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/9/projects/3024/add-members" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        1
    ]
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/9/projects/3024/add-members"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ids": [
        1
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/9/projects/3024/add-members',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ids' => [
                1,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Members have been added to the group project successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to add members to the group project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to add members to the group project."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/projects/{project_id}/add-members

URL Parameters

group_id  integer  

The ID of the group.

project_id  integer  

The ID of the project.

Body Parameters

ids  string[]  

The list of the member Ids to add

Remove Member from the Group Project

Remove member from a specified project of specified group.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/groups/18/projects/3024/remove-member" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"email\": \"mjacobi@example.org\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/groups/18/projects/3024/remove-member"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "email": "mjacobi@example.org"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/groups/18/projects/3024/remove-member',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'email' => 'mjacobi@example.org',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Member has been removed from the group project successfully."
}
 

Example response (403):


{
    "errors": [
        "You do not have permission to remove member from the group project."
    ]
}
 

Example response (500):


{
    "errors": [
        "Failed to remove member from the group project."
    ]
}
 

Request      

POST api/v1/groups/{group_id}/projects/{project_id}/remove-member

URL Parameters

group_id  integer  

The ID of the group.

project_id  integer  

The ID of the project.

Body Parameters

id  integer  

The Id of the member to remove

email  string optional  

Must be a valid email address.

Get All Organization Groups

Get a list of the groups of an organization.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/get-groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/get-groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/get-groups',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "groups": [
        {
            "id": 1,
            "name": "Test Group",
            "description": "This is a test group.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Group",
            "description": "This is a test math group.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/get-groups

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Get All Groups

Get a list of the groups of a user.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/groups',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "groups": [
        {
            "id": 1,
            "name": "Test Group",
            "description": "This is a test group.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Group",
            "description": "This is a test math group.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/groups

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Create Group

Create a new group in storage for a user.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganization/1/groups" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 3,
    \"name\": \"Test Group\",
    \"description\": \"This is a test group.\",
    \"users\": [
        \"recusandae\"
    ],
    \"projects\": [
        \"nemo\"
    ],
    \"note\": \"\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 3,
    "name": "Test Group",
    "description": "This is a test group.",
    "users": [
        "recusandae"
    ],
    "projects": [
        "nemo"
    ],
    "note": ""
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganization/1/groups',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 3,
            'name' => 'Test Group',
            'description' => 'This is a test group.',
            'users' => [
                'recusandae',
            ],
            'projects' => [
                'nemo',
            ],
            'note' => '',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Could not create group. Please try again later."
    ]
}
 

Example response (201):


{
    "groups": [
        {
            "id": 1,
            "name": "Test Group",
            "description": "This is a test group.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Group",
            "description": "This is a test math group.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

POST api/v1/suborganization/{suborganization_id}/groups

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

organization_id  integer  

name  string  

Name of a group

description  string  

Description of a group

users  string[]  

projects  string[] optional  

note  string optional  

Must be at least 0 characters.

Get Group

Get the specified group detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/groups/4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups/4"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/groups/4',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "groups": [
        {
            "id": 1,
            "name": "Test Group",
            "description": "This is a test group.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Group",
            "description": "This is a test math group.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/groups/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the group.

suborganization  string  

The Id of a suborganization

group  string  

The Id of a group

Update Group

Update the specified group of a user.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganization/1/groups/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization_id\": 13,
    \"name\": \"Test Group\",
    \"description\": \"This is a test group.\",
    \"users\": [
        \"enim\"
    ],
    \"projects\": [
        \"aut\"
    ],
    \"note\": \"\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups/18"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization_id": 13,
    "name": "Test Group",
    "description": "This is a test group.",
    "users": [
        "enim"
    ],
    "projects": [
        "aut"
    ],
    "note": ""
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganization/1/groups/18',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization_id' => 13,
            'name' => 'Test Group',
            'description' => 'This is a test group.',
            'users' => [
                'enim',
            ],
            'projects' => [
                'aut',
            ],
            'note' => '',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Failed to update group."
    ]
}
 

Example response (200):


{
    "groups": [
        {
            "id": 1,
            "name": "Test Group",
            "description": "This is a test group.",
            "thumb_url": "https://images.pexels.com/photos/2832382",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-06T19:21:08.000000Z",
            "updated_at": "2020-09-06T19:21:08.000000Z"
        },
        {
            "id": 2,
            "name": "Math Group",
            "description": "This is a test math group.",
            "thumb_url": "https://images.pexels.com/photos/2832384",
            "shared": true,
            "starter_project": null,
            "is_public": true,
            "created_at": "2020-09-07T19:21:08.000000Z",
            "updated_at": "2020-09-07T19:21:08.000000Z"
        }
    ]
}
 

Request      

PUT api/v1/suborganization/{suborganization_id}/groups/{id}

PATCH api/v1/suborganization/{suborganization_id}/groups/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the group.

suborganization  string  

The Id of a suborganization

group  string  

The Id of a group

Body Parameters

organization_id  integer  

name  string  

Name of a group

description  string  

Description of a group

users  string[]  

projects  string[] optional  

note  string optional  

Must be at least 0 characters.

Remove Group

Remove the specified group of a user.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganization/1/groups/10" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/groups/10"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganization/1/groups/10',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Group has been deleted successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to delete group."
    ]
}
 

Request      

DELETE api/v1/suborganization/{suborganization_id}/groups/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

The ID of the group.

suborganization  string  

The Id of a suborganization

group  string  

The Id of a group

GET api/v1/users/{user_id}/metrics

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/2/metrics" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/2/metrics"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/2/metrics',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/users/{user_id}/metrics

URL Parameters

user_id  integer  

The ID of the user.

GET api/v1/users/{user_id}/membership

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/users/2/membership" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/users/2/membership"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/users/2/membership',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/users/{user_id}/membership

URL Parameters

user_id  integer  

The ID of the user.

Display error

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganization/1/projects/3024/offline-project" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganization/1/projects/3024/offline-project"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganization/1/projects/3024/offline-project',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "errors": [
        "Unauthorized."
    ]
}
 

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/suborganization/{suborganization_id}/projects/{project_id}/offline-project

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

project_id  integer  

The ID of the project.

GET api/v1/project/delete/{project_path}

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/project/delete/non" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/project/delete/non"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/project/delete/non',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/project/delete/{project_path}

URL Parameters

project_path  string  

GET api/v1/h5p/ajax/libraries

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/libraries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/libraries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/libraries',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/libraries

POST api/v1/h5p/ajax/libraries

POST api/v1/h5p/ajax/libraries/load-all-dependencies

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/h5p/ajax/libraries/load-all-dependencies" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/libraries/load-all-dependencies"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/h5p/ajax/libraries/load-all-dependencies',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/h5p/ajax/libraries/load-all-dependencies

GET api/v1/h5p/ajax/single-libraries

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/single-libraries" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/single-libraries"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/single-libraries',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/single-libraries

GET api/v1/h5p/ajax/content-type-cache

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/content-type-cache" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/content-type-cache"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/content-type-cache',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/content-type-cache

POST api/v1/h5p/ajax/content-type-cache

PUT api/v1/h5p/ajax/content-type-cache

PATCH api/v1/h5p/ajax/content-type-cache

DELETE api/v1/h5p/ajax/content-type-cache

OPTIONS api/v1/h5p/ajax/content-type-cache

GET api/v1/h5p/ajax/library-install

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/library-install" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/library-install"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/library-install',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/library-install

POST api/v1/h5p/ajax/library-install

PUT api/v1/h5p/ajax/library-install

PATCH api/v1/h5p/ajax/library-install

DELETE api/v1/h5p/ajax/library-install

OPTIONS api/v1/h5p/ajax/library-install

POST api/v1/h5p/ajax/library-upload

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/h5p/ajax/library-upload" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/library-upload"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/h5p/ajax/library-upload',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/h5p/ajax/library-upload

GET api/v1/h5p/ajax/filter

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/filter" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/filter"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/filter',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/filter

POST api/v1/h5p/ajax/filter

PUT api/v1/h5p/ajax/filter

PATCH api/v1/h5p/ajax/filter

DELETE api/v1/h5p/ajax/filter

OPTIONS api/v1/h5p/ajax/filter

GET api/v1/h5p/ajax/finish

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/finish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/finish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/finish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/finish

POST api/v1/h5p/ajax/finish

PUT api/v1/h5p/ajax/finish

PATCH api/v1/h5p/ajax/finish

DELETE api/v1/h5p/ajax/finish

OPTIONS api/v1/h5p/ajax/finish

GET api/v1/h5p/h5p-result/my

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/h5p-result/my" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/h5p-result/my"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/h5p-result/my',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/h5p-result/my

POST api/v1/h5p/h5p-result/my

PUT api/v1/h5p/h5p-result/my

PATCH api/v1/h5p/h5p-result/my

DELETE api/v1/h5p/h5p-result/my

OPTIONS api/v1/h5p/h5p-result/my

GET api/v1/h5p/ajax/reader/finish

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/reader/finish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/reader/finish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/reader/finish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/reader/finish

POST api/v1/h5p/ajax/reader/finish

PUT api/v1/h5p/ajax/reader/finish

PATCH api/v1/h5p/ajax/reader/finish

DELETE api/v1/h5p/ajax/reader/finish

OPTIONS api/v1/h5p/ajax/reader/finish

GET api/v1/h5p/ajax/reader/getScore

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/reader/getScore" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/reader/getScore"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/reader/getScore',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/reader/getScore

POST api/v1/h5p/ajax/reader/getScore

PUT api/v1/h5p/ajax/reader/getScore

PATCH api/v1/h5p/ajax/reader/getScore

DELETE api/v1/h5p/ajax/reader/getScore

OPTIONS api/v1/h5p/ajax/reader/getScore

Get All Brightcove API Settings for listing.

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start\": 0,
    \"length\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start": 0,
    "length": 10
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start' => 0,
            'length' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/suborganizations/{suborganization_id}/brightcove-api-settings

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  integer  

Id of an organization

Body Parameters

start  integer optional  

Offset for getting the paginated response, Default 0.

length  integer optional  

Limit for getting the paginated records, Default 10.

Create Brightcove API Setting

Create Brightcove API Setting Data

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"account_id\": \"kcjxnoidpmgm\",
    \"account_name\": \"njamgdtsvhrrlryccbcvnaauudseiszjqnymcfupqueydpmfcmjxpolaugviqsdtvocxmcnwnthxhwhbg\",
    \"account_email\": \"xtebxrysmfzxrzmzrymdpwmndohjbfltzfidjvb\",
    \"client_id\": \"nobzxiymbvzsuoriyrogzggvfgiqosetsubbxzqawlrfawkxqekvryxybnuiqyktnkkhlsybbaucpjwpgtvpiayjykbfojvkghxqcr\",
    \"client_secret\": \"nzlcnwifiyhgpdtaemrberoitbjfplzpjmezeueasmngwsmgsdkvzxqguviiegtjaxwnepnlefyucntovpcvfehknzwhurrsltncxrmrctgiswroolzunzz\",
    \"user_id\": \"quo\",
    \"organization_id\": \"corporis\",
    \"css_path\": \"fugit\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "account_id": "kcjxnoidpmgm",
    "account_name": "njamgdtsvhrrlryccbcvnaauudseiszjqnymcfupqueydpmfcmjxpolaugviqsdtvocxmcnwnthxhwhbg",
    "account_email": "xtebxrysmfzxrzmzrymdpwmndohjbfltzfidjvb",
    "client_id": "nobzxiymbvzsuoriyrogzggvfgiqosetsubbxzqawlrfawkxqekvryxybnuiqyktnkkhlsybbaucpjwpgtvpiayjykbfojvkghxqcr",
    "client_secret": "nzlcnwifiyhgpdtaemrberoitbjfplzpjmezeueasmngwsmgsdkvzxqguviiegtjaxwnepnlefyucntovpcvfehknzwhurrsltncxrmrctgiswroolzunzz",
    "user_id": "quo",
    "organization_id": "corporis",
    "css_path": "fugit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'account_id' => 'kcjxnoidpmgm',
            'account_name' => 'njamgdtsvhrrlryccbcvnaauudseiszjqnymcfupqueydpmfcmjxpolaugviqsdtvocxmcnwnthxhwhbg',
            'account_email' => 'xtebxrysmfzxrzmzrymdpwmndohjbfltzfidjvb',
            'client_id' => 'nobzxiymbvzsuoriyrogzggvfgiqosetsubbxzqawlrfawkxqekvryxybnuiqyktnkkhlsybbaucpjwpgtvpiayjykbfojvkghxqcr',
            'client_secret' => 'nzlcnwifiyhgpdtaemrberoitbjfplzpjmezeueasmngwsmgsdkvzxqguviiegtjaxwnepnlefyucntovpcvfehknzwhurrsltncxrmrctgiswroolzunzz',
            'user_id' => 'quo',
            'organization_id' => 'corporis',
            'css_path' => 'fugit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Brightcove API Setting created successfully!",
    "data": [
        "Created Setting Data Array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create setting, please try again later!"
    ]
}
 

Request      

POST api/v1/suborganizations/{suborganization_id}/brightcove-api-settings

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

suborganization  string  

The Id of a suborganization

Body Parameters

account_id  string  

Must not be greater than 50 characters.

account_name  string  

Must not be greater than 100 characters.

account_email  string  

Must not be greater than 150 characters.

client_id  string optional  

Must not be greater than 255 characters.

client_secret  string optional  

This field is required when client_id is present. Must not be greater than 255 characters.

user_id  string  

organization_id  string  

css_path  string optional  

Update Brightcove API Setting

Update Brightcove API Setting Data

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"account_id\": \"msaogudnwoflrsqnjzjunrifbvesgp\",
    \"account_name\": \"uduqgakk\",
    \"account_email\": \"oxroyzitmlfzookavymseehqokunlawoljzgkzjtwdstgvmdwxinyfutymmgstbigpmekkepcnehdwuscrfhnfnkqpuqunnxgwpekpyzfusoytxqnthasmuhs\",
    \"client_id\": \"wdxmjwbtfulduotyblhixfojabxqajsmbhulgkevlgmsalhpnotniotacneiwettsnljgomljiuaqkljfksdlfpmgoqsekncyjijjgzwvbyjlflbhhxqeuxmbktguvuutynxijpxffeelegbonbuulihmbsfjkxoxkjtnotwbhzsxwoxzfziphtdzprfjztnzftdwyxunbntzijcfxeqlwgcnmtxmjmvoabstxjnrkfnobybobhljpgjals\",
    \"client_secret\": \"dcyxixutkonbukftevcyjdvvrkobdikjqxkrmdzimrbcdcrgggdistwidxceayvrubumexswucystnuj\",
    \"user_id\": \"est\",
    \"organization_id\": \"numquam\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "account_id": "msaogudnwoflrsqnjzjunrifbvesgp",
    "account_name": "uduqgakk",
    "account_email": "oxroyzitmlfzookavymseehqokunlawoljzgkzjtwdstgvmdwxinyfutymmgstbigpmekkepcnehdwuscrfhnfnkqpuqunnxgwpekpyzfusoytxqnthasmuhs",
    "client_id": "wdxmjwbtfulduotyblhixfojabxqajsmbhulgkevlgmsalhpnotniotacneiwettsnljgomljiuaqkljfksdlfpmgoqsekncyjijjgzwvbyjlflbhhxqeuxmbktguvuutynxijpxffeelegbonbuulihmbsfjkxoxkjtnotwbhzsxwoxzfziphtdzprfjztnzftdwyxunbntzijcfxeqlwgcnmtxmjmvoabstxjnrkfnobybobhljpgjals",
    "client_secret": "dcyxixutkonbukftevcyjdvvrkobdikjqxkrmdzimrbcdcrgggdistwidxceayvrubumexswucystnuj",
    "user_id": "est",
    "organization_id": "numquam"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'account_id' => 'msaogudnwoflrsqnjzjunrifbvesgp',
            'account_name' => 'uduqgakk',
            'account_email' => 'oxroyzitmlfzookavymseehqokunlawoljzgkzjtwdstgvmdwxinyfutymmgstbigpmekkepcnehdwuscrfhnfnkqpuqunnxgwpekpyzfusoytxqnthasmuhs',
            'client_id' => 'wdxmjwbtfulduotyblhixfojabxqajsmbhulgkevlgmsalhpnotniotacneiwettsnljgomljiuaqkljfksdlfpmgoqsekncyjijjgzwvbyjlflbhhxqeuxmbktguvuutynxijpxffeelegbonbuulihmbsfjkxoxkjtnotwbhzsxwoxzfziphtdzprfjztnzftdwyxunbntzijcfxeqlwgcnmtxmjmvoabstxjnrkfnobybobhljpgjals',
            'client_secret' => 'dcyxixutkonbukftevcyjdvvrkobdikjqxkrmdzimrbcdcrgggdistwidxceayvrubumexswucystnuj',
            'user_id' => 'est',
            'organization_id' => 'numquam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Brightcove API setting data updated successfully!",
    "data": [
        "Updated Brightcove API setting data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update Brightcove API setting, please try again later."
    ]
}
 

Request      

PUT api/v1/suborganizations/{suborganization_id}/brightcove-api-settings/{id}

PATCH api/v1/suborganizations/{suborganization_id}/brightcove-api-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  integer  

Id of brightCove

suborganization  integer  

Id of an organization

Body Parameters

account_id  string  

Must not be greater than 50 characters.

account_name  string  

Must not be greater than 100 characters.

account_email  string  

Must not be greater than 150 characters.

client_id  string optional  

Must not be greater than 255 characters.

client_secret  string optional  

This field is required when client_id is present. Must not be greater than 255 characters.

user_id  string  

organization_id  string  

Delete Brightcove Setting

Delete Brightcove API Setting

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/exercitationem" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/exercitationem"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/suborganizations/1/brightcove-api-settings/exercitationem',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Brightcove API setting deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to delete Brightcove API setting, please try again later."
    ]
}
 

Request      

DELETE api/v1/suborganizations/{suborganization_id}/brightcove-api-settings/{id}

URL Parameters

suborganization_id  integer  

The ID of the suborganization.

id  string  

The ID of the brightcove api setting.

Upload CSS

Upload css file for a activity type

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/brightcove-api-settings/upload-css" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "fileName=mollitia" \
    --form "typeName=est" \
    --form "file=@C:\Users\Administrator\AppData\Local\Temp\php4DEC.tmp" \
    --form "css=@C:\Users\Administrator\AppData\Local\Temp\php4DFE.tmp" 
const url = new URL(
    "http://localhost:8000/api/v1/brightcove-api-settings/upload-css"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('fileName', 'mollitia');
body.append('typeName', 'est');
body.append('file', document.querySelector('input[name="file"]').files[0]);
body.append('css', document.querySelector('input[name="css"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/brightcove-api-settings/upload-css',
    [
        'headers' => [
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'fileName',
                'contents' => 'mollitia'
            ],
            [
                'name' => 'typeName',
                'contents' => 'est'
            ],
            [
                'name' => 'file',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php4DEC.tmp', 'r')
            ],
            [
                'name' => 'css',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php4DFE.tmp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "file": "/storage/brightcove/css/Audio.file-name.css"
}
 

Request      

POST api/v1/brightcove-api-settings/upload-css

Body Parameters

file  file  

Must be a file.

fileName  string  

typeName  string  

css  file  

file

Login to Canvas

Login to Canvas LMS

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/vero/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"umnfmsqbhmbkpfxwwqtvpalodlowqhrodgmlpduxcvtlapkfgwnfesvfepnadahcgsty\",
    \"password\": \"ocbuqzyxarzdulbtbubllycembajqyfkwrfemuwrkvwzusyefcaibzorftulxp\",
    \"lmsName\": \"ptenktegdvftaapaggqlmgzhhayzujnchpnoygwsmnbwtmvbgnthcqsxitbeauwrmnxcjthxokoyguttxgllvylva\",
    \"lmsUrl\": \"dtdbrltvgtvihzsludnhwphyfectihwpgsyvfmimmvhitgplsnpcptgoreiwszgimizmqnlupzqrkmvkeoceekmsimhguxqixzrlhmwyxhtrxtzuaqfunsbobqhumtmfqidljbsovqaorxgqslnqlarmyuvg\",
    \"lmsClientId\": \"id\",
    \"courseId\": \"pdwahatsrhkmxkzbpffpiuallfkdryjg\",
    \"activityId\": 12
}"
const url = new URL(
    "http://localhost:8000/api/v1/go/vero/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "umnfmsqbhmbkpfxwwqtvpalodlowqhrodgmlpduxcvtlapkfgwnfesvfepnadahcgsty",
    "password": "ocbuqzyxarzdulbtbubllycembajqyfkwrfemuwrkvwzusyefcaibzorftulxp",
    "lmsName": "ptenktegdvftaapaggqlmgzhhayzujnchpnoygwsmnbwtmvbgnthcqsxitbeauwrmnxcjthxokoyguttxgllvylva",
    "lmsUrl": "dtdbrltvgtvihzsludnhwphyfectihwpgsyvfmimmvhitgplsnpcptgoreiwszgimizmqnlupzqrkmvkeoceekmsimhguxqixzrlhmwyxhtrxtzuaqfunsbobqhumtmfqidljbsovqaorxgqslnqlarmyuvg",
    "lmsClientId": "id",
    "courseId": "pdwahatsrhkmxkzbpffpiuallfkdryjg",
    "activityId": 12
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/vero/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'username' => 'umnfmsqbhmbkpfxwwqtvpalodlowqhrodgmlpduxcvtlapkfgwnfesvfepnadahcgsty',
            'password' => 'ocbuqzyxarzdulbtbubllycembajqyfkwrfemuwrkvwzusyefcaibzorftulxp',
            'lmsName' => 'ptenktegdvftaapaggqlmgzhhayzujnchpnoygwsmnbwtmvbgnthcqsxitbeauwrmnxcjthxokoyguttxgllvylva',
            'lmsUrl' => 'dtdbrltvgtvihzsludnhwphyfectihwpgsyvfmimmvhitgplsnpcptgoreiwszgimizmqnlupzqrkmvkeoceekmsimhguxqixzrlhmwyxhtrxtzuaqfunsbobqhumtmfqidljbsovqaorxgqslnqlarmyuvg',
            'lmsClientId' => 'id',
            'courseId' => 'pdwahatsrhkmxkzbpffpiuallfkdryjg',
            'activityId' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/go/{lms}/login

URL Parameters

lms  string  

object of lms example: {"id": 1}

Body Parameters

username  string  

Must not be greater than 255 characters.

password  string  

Must not be greater than 255 characters.

lmsName  string  

Must not be greater than 255 characters.

lmsUrl  string  

Must not be greater than 255 characters.

lmsClientId  string  

courseId  string  

Must not be greater than 255 characters.

activityId  integer  

Save Access Token

Save GraphAPI access token in the database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/microsoft-team/save-access-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"dolorem\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/microsoft-team/save-access-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "dolorem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/microsoft-team/save-access-token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Access token has been saved successfully."
}
 

Example response (500):


{
    "errors": [
        "Failed to save the token."
    ]
}
 

Request      

POST api/v1/microsoft-team/save-access-token

Body Parameters

access_token  string  

The stringified of the GraphAPI access token JSON object

Get List of Classes

Get List of Microsoft Team Classes

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/microsoft-team/classes" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/microsoft-team/classes"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/microsoft-team/classes',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "classes": Array of classes
}
 

Request      

GET api/v1/microsoft-team/classes

Create a new Class

Create a new Class/Team into Microsoft Team

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/microsoft-team/classes" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"displayName\": \"Test Class\",
    \"access_token\": \"123\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/microsoft-team/classes"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "displayName": "Test Class",
    "access_token": "123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/microsoft-team/classes',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'displayName' => 'Test Class',
            'access_token' => '123',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": [
    "Class have been created successfully"
  ]
}
* @response  500 {
  "errors": [
    "Something went wrong."
  ]
}
 

Request      

POST api/v1/microsoft-team/classes

Body Parameters

displayName  required optional  

string Name of the class.

access_token  string optional  

The stringified of the GAPI access token JSON object

Publish project

Publish the project activities as an assignment

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/microsoft-team/projects/3024/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"classId\": \"bebe45d4-d0e6-4085-b418-e98a51db70c3\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/microsoft-team/projects/3024/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "classId": "bebe45d4-d0e6-4085-b418-e98a51db70c3"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/microsoft-team/projects/3024/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'classId' => 'bebe45d4-d0e6-4085-b418-e98a51db70c3',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": [
        "Your request to publish project [project->name] into MS Team has been received and is being processed.<br>You will be alerted in the notification section in the title bar when complete."
    ]
}
 

Example response (500):


{
    "errors": [
        "Project must be shared as we are temporarily publishing the shared link."
    ]
}
 

Request      

POST api/v1/microsoft-team/projects/{project_id}/publish

URL Parameters

project_id  integer  

The ID of the project.

Project  string optional  

$project required The Id of a project.

Body Parameters

classId  optional optional  

string Id of the class.

Publish independent activity/activity

Publish the independent activity or activity in playlist as an assignment

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/microsoft-team/activities/761/publish" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"classId\": \"bebe45d4-d0e6-4085-b418-e98a51db70c3\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/microsoft-team/activities/761/publish"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "classId": "bebe45d4-d0e6-4085-b418-e98a51db70c3"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/microsoft-team/activities/761/publish',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'classId' => 'bebe45d4-d0e6-4085-b418-e98a51db70c3',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": [
        "Your request to publish activity [activity->title] into MS Team has been received and is being processed.<br>You will be alerted in the notification section in the title bar when complete."
    ]
}
 

Example response (500):


{
    "errors": [
        "Activity must be shared as we are temporarily publishing the shared link."
    ]
}
 

Request      

POST api/v1/microsoft-team/activities/{activity_id}/publish

URL Parameters

activity_id  integer  

The ID of the activity.

Activity  string optional  

$activity required The Id of a activity.

Body Parameters

classId  optional optional  

uuid Id of the class.

Get a full list of LMS settings available to the user

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/user-lms-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/user-lms-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/user-lms-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/user-lms-settings

Display a listing of the resource.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/organizations/1/default-sso-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/organizations/1/default-sso-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/organizations/{organization_id}/default-sso-settings

URL Parameters

organization_id  integer  

The ID of the organization.

Store a newly created resource in storage.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"ljaoymalmyektbhqjeyedcduizbybwittpgtxdunuuqsbhrduuvvqqdzjmgcnhhabiuzqygqiskelrdnbnsrcmdzcwgpcbkawhtejtufuzyxrjgpyoqamvrvpbbvqsttztjlrnffbjbrxcpkzjbormrznlxglauvvwzzaqmxutpfneykyeqxobzkflgjqtxxxuhkvzeeczi\",
    \"lms_access_token\": \"xfncnkqdzpujansovnjkenxtzbbakcvyxcjlekqtsbyvwzeogmplnhlfinieqpqsjdabtgzmaienhzgikpohxskayzncnefdasgojyvmiuzauobwmntnlpjzemlktqvitzfrixthyklwenscdzrhaozrzntplvjbsgdkdbcikviezxvnfltlyofcxid\",
    \"site_name\": \"vsmzffqpchhzxzkjzyulbixblzwlcmvlcmqoe\",
    \"lti_client_id\": \"cjwptnanuonzddeghawrzwspcsjfnespnrbmgpqayepydioddxjr\",
    \"lms_name\": \"qzevydpzyqqcalvomhmclfhbvavtkijdbtqbcrafyxceguvtykcqixlnrobaqmthoauhusnjflsmlouaqgftvbgkticymscknkksdnnfvtnfgeeurxheeviajnvfqmio\",
    \"lms_access_key\": \"puxohmovtlrcqcocepnidrwzjyjkgitdmpxtkqipfxmesysedqxxskdiyjlxqhedagjvrlgysfgrbcwttqescvpjiepmllzcclwjrabphirpjzydqzuidplmcuwocjvcicslzbwhpqmivswkliqkhgjkicehcjwiyeuxqmgswzyqslzypzmdjnmedtcgxhokkzausrcejuxivctkzfnkum\",
    \"lms_access_secret\": \"chwdamvydukfwnsfrwnwqkttjbqhyvzscaakeapfrzadtwoyupiudvoarvjjagykrgpftgmchgvudgcuepububnepnivcsckwbglgarcjpxvgxaryt\",
    \"description\": \"olesqdgzuoul\",
    \"organization_id\": \"maxime\",
    \"role_id\": 1,
    \"project_visibility\": true,
    \"playlist_visibility\": false,
    \"activity_visibility\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "ljaoymalmyektbhqjeyedcduizbybwittpgtxdunuuqsbhrduuvvqqdzjmgcnhhabiuzqygqiskelrdnbnsrcmdzcwgpcbkawhtejtufuzyxrjgpyoqamvrvpbbvqsttztjlrnffbjbrxcpkzjbormrznlxglauvvwzzaqmxutpfneykyeqxobzkflgjqtxxxuhkvzeeczi",
    "lms_access_token": "xfncnkqdzpujansovnjkenxtzbbakcvyxcjlekqtsbyvwzeogmplnhlfinieqpqsjdabtgzmaienhzgikpohxskayzncnefdasgojyvmiuzauobwmntnlpjzemlktqvitzfrixthyklwenscdzrhaozrzntplvjbsgdkdbcikviezxvnfltlyofcxid",
    "site_name": "vsmzffqpchhzxzkjzyulbixblzwlcmvlcmqoe",
    "lti_client_id": "cjwptnanuonzddeghawrzwspcsjfnespnrbmgpqayepydioddxjr",
    "lms_name": "qzevydpzyqqcalvomhmclfhbvavtkijdbtqbcrafyxceguvtykcqixlnrobaqmthoauhusnjflsmlouaqgftvbgkticymscknkksdnnfvtnfgeeurxheeviajnvfqmio",
    "lms_access_key": "puxohmovtlrcqcocepnidrwzjyjkgitdmpxtkqipfxmesysedqxxskdiyjlxqhedagjvrlgysfgrbcwttqescvpjiepmllzcclwjrabphirpjzydqzuidplmcuwocjvcicslzbwhpqmivswkliqkhgjkicehcjwiyeuxqmgswzyqslzypzmdjnmedtcgxhokkzausrcejuxivctkzfnkum",
    "lms_access_secret": "chwdamvydukfwnsfrwnwqkttjbqhyvzscaakeapfrzadtwoyupiudvoarvjjagykrgpftgmchgvudgcuepububnepnivcsckwbglgarcjpxvgxaryt",
    "description": "olesqdgzuoul",
    "organization_id": "maxime",
    "role_id": 1,
    "project_visibility": true,
    "playlist_visibility": false,
    "activity_visibility": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/organizations/1/default-sso-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'ljaoymalmyektbhqjeyedcduizbybwittpgtxdunuuqsbhrduuvvqqdzjmgcnhhabiuzqygqiskelrdnbnsrcmdzcwgpcbkawhtejtufuzyxrjgpyoqamvrvpbbvqsttztjlrnffbjbrxcpkzjbormrznlxglauvvwzzaqmxutpfneykyeqxobzkflgjqtxxxuhkvzeeczi',
            'lms_access_token' => 'xfncnkqdzpujansovnjkenxtzbbakcvyxcjlekqtsbyvwzeogmplnhlfinieqpqsjdabtgzmaienhzgikpohxskayzncnefdasgojyvmiuzauobwmntnlpjzemlktqvitzfrixthyklwenscdzrhaozrzntplvjbsgdkdbcikviezxvnfltlyofcxid',
            'site_name' => 'vsmzffqpchhzxzkjzyulbixblzwlcmvlcmqoe',
            'lti_client_id' => 'cjwptnanuonzddeghawrzwspcsjfnespnrbmgpqayepydioddxjr',
            'lms_name' => 'qzevydpzyqqcalvomhmclfhbvavtkijdbtqbcrafyxceguvtykcqixlnrobaqmthoauhusnjflsmlouaqgftvbgkticymscknkksdnnfvtnfgeeurxheeviajnvfqmio',
            'lms_access_key' => 'puxohmovtlrcqcocepnidrwzjyjkgitdmpxtkqipfxmesysedqxxskdiyjlxqhedagjvrlgysfgrbcwttqescvpjiepmllzcclwjrabphirpjzydqzuidplmcuwocjvcicslzbwhpqmivswkliqkhgjkicehcjwiyeuxqmgswzyqslzypzmdjnmedtcgxhokkzausrcejuxivctkzfnkum',
            'lms_access_secret' => 'chwdamvydukfwnsfrwnwqkttjbqhyvzscaakeapfrzadtwoyupiudvoarvjjagykrgpftgmchgvudgcuepububnepnivcsckwbglgarcjpxvgxaryt',
            'description' => 'olesqdgzuoul',
            'organization_id' => 'maxime',
            'role_id' => 1,
            'project_visibility' => true,
            'playlist_visibility' => false,
            'activity_visibility' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/organizations/{organization_id}/default-sso-settings

URL Parameters

organization_id  integer  

The ID of the organization.

Body Parameters

lms_url  string  

Must be a valid URL. Must not be greater than 255 characters.

lms_access_token  string  

Must be at least 20 characters. Must not be greater than 255 characters.

site_name  string  

Must not be greater than 255 characters.

lti_client_id  string optional  

Must not be greater than 255 characters.

lms_name  string optional  

Must not be greater than 255 characters.

lms_access_key  string optional  

Must not be greater than 255 characters.

lms_access_secret  string optional  

This field is required when lms_access_key is present. Must not be greater than 255 characters.

description  string optional  

Must not be greater than 255 characters.

organization_id  string  

role_id  integer  

project_visibility  boolean optional  

playlist_visibility  boolean optional  

activity_visibility  boolean optional  

Display the specified resource.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/organizations/1/default-sso-settings/20" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings/20"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/organizations/1/default-sso-settings/20',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Unable to read key from file file://D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\storage\\oauth-public.key",
    "exception": "LogicException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\league\\oauth2-server\\src\\CryptKey.php",
    "line": 67,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 275,
            "function": "__construct",
            "class": "League\\OAuth2\\Server\\CryptKey",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 256,
            "function": "makeCryptKey",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 873,
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 758,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 851,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 694,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 836,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\passport\\src\\PassportServiceProvider.php",
            "line": 304,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "function": "Laravel\\Passport\\{closure}",
            "class": "Laravel\\Passport\\PassportServiceProvider",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\RequestGuard.php",
            "line": 58,
            "function": "call_user_func"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\GuardHelpers.php",
            "line": 60,
            "function": "user",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 63,
            "function": "check",
            "class": "Illuminate\\Auth\\RequestGuard",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php",
            "line": 42,
            "function": "authenticate",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Auth\\Middleware\\Authenticate",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/organizations/{organization_id}/default-sso-settings/{id}

URL Parameters

organization_id  integer  

The ID of the organization.

id  integer  

The ID of the default sso setting.

Update the specified resource in storage.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"ftqnsonsyxtqmuykltqaerfusxsvlrfkbfagsptitjbrccwgyzdkkkgszuambjqwdxw\",
    \"lms_access_token\": \"fclyyacehmotaiinufdbwlvbdanyhuhtcveoypmeheygyafbdbimdcibuuoidxaitkuepbnykxlzrwxfkmuzkvgqoefpfygpmeaablbwaxvxsycmnlzddogdvhamxhsscqnxknfhvubqxmlbwfbgsntpyiu\",
    \"site_name\": \"yodlrsz\",
    \"lti_client_id\": \"wvuxefnqxhucehraktmxbyomppwdukckghzbmdehtjkfrqeudoushcohorzmimczfgdwpiakfgvvnucvvml\",
    \"lms_name\": \"kpkxvvejmavplqkbsrigzmsgymtqljrzqclwxak\",
    \"lms_access_key\": \"wbkhqswuehpiebxzdspvbkcgqhkafbwqjxdjwbwmo\",
    \"lms_access_secret\": \"ynxzeevxjodutkkypgchjsyetcgbqprathjiblgznpmyfiqtvnipamafqwoevaoyahesixisnjnpddavqscnvbkdzgsoaxemvilcilgofcqizjvjxcfqrwvwjanuchfwxrwjrgamoqpudsnqrtzmhffieexxhpfpjhmzevrkbqvyexfrlgiyrfmnokcbfgfmcdrbsvduscoagbljkkqjlwzvdjfl\",
    \"description\": \"ypmnoxpkdfrauebpxztxngcxtgufxzhlvsvcnhmrhdwkvznwcayvlefdyissiggdyjesfoqnmmraowykfavxikjzhckkqxcomdgcafxiztjlkmujjfwoybryszzgxndsjkebslqzinfntfjjbcqqeqwmvnqzfscubwtxclgehi\",
    \"organization_id\": \"voluptatem\",
    \"role_id\": 13,
    \"project_visibility\": true,
    \"playlist_visibility\": true,
    \"activity_visibility\": false
}"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "ftqnsonsyxtqmuykltqaerfusxsvlrfkbfagsptitjbrccwgyzdkkkgszuambjqwdxw",
    "lms_access_token": "fclyyacehmotaiinufdbwlvbdanyhuhtcveoypmeheygyafbdbimdcibuuoidxaitkuepbnykxlzrwxfkmuzkvgqoefpfygpmeaablbwaxvxsycmnlzddogdvhamxhsscqnxknfhvubqxmlbwfbgsntpyiu",
    "site_name": "yodlrsz",
    "lti_client_id": "wvuxefnqxhucehraktmxbyomppwdukckghzbmdehtjkfrqeudoushcohorzmimczfgdwpiakfgvvnucvvml",
    "lms_name": "kpkxvvejmavplqkbsrigzmsgymtqljrzqclwxak",
    "lms_access_key": "wbkhqswuehpiebxzdspvbkcgqhkafbwqjxdjwbwmo",
    "lms_access_secret": "ynxzeevxjodutkkypgchjsyetcgbqprathjiblgznpmyfiqtvnipamafqwoevaoyahesixisnjnpddavqscnvbkdzgsoaxemvilcilgofcqizjvjxcfqrwvwjanuchfwxrwjrgamoqpudsnqrtzmhffieexxhpfpjhmzevrkbqvyexfrlgiyrfmnokcbfgfmcdrbsvduscoagbljkkqjlwzvdjfl",
    "description": "ypmnoxpkdfrauebpxztxngcxtgufxzhlvsvcnhmrhdwkvznwcayvlefdyissiggdyjesfoqnmmraowykfavxikjzhckkqxcomdgcafxiztjlkmujjfwoybryszzgxndsjkebslqzinfntfjjbcqqeqwmvnqzfscubwtxclgehi",
    "organization_id": "voluptatem",
    "role_id": 13,
    "project_visibility": true,
    "playlist_visibility": true,
    "activity_visibility": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/organizations/1/default-sso-settings/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'ftqnsonsyxtqmuykltqaerfusxsvlrfkbfagsptitjbrccwgyzdkkkgszuambjqwdxw',
            'lms_access_token' => 'fclyyacehmotaiinufdbwlvbdanyhuhtcveoypmeheygyafbdbimdcibuuoidxaitkuepbnykxlzrwxfkmuzkvgqoefpfygpmeaablbwaxvxsycmnlzddogdvhamxhsscqnxknfhvubqxmlbwfbgsntpyiu',
            'site_name' => 'yodlrsz',
            'lti_client_id' => 'wvuxefnqxhucehraktmxbyomppwdukckghzbmdehtjkfrqeudoushcohorzmimczfgdwpiakfgvvnucvvml',
            'lms_name' => 'kpkxvvejmavplqkbsrigzmsgymtqljrzqclwxak',
            'lms_access_key' => 'wbkhqswuehpiebxzdspvbkcgqhkafbwqjxdjwbwmo',
            'lms_access_secret' => 'ynxzeevxjodutkkypgchjsyetcgbqprathjiblgznpmyfiqtvnipamafqwoevaoyahesixisnjnpddavqscnvbkdzgsoaxemvilcilgofcqizjvjxcfqrwvwjanuchfwxrwjrgamoqpudsnqrtzmhffieexxhpfpjhmzevrkbqvyexfrlgiyrfmnokcbfgfmcdrbsvduscoagbljkkqjlwzvdjfl',
            'description' => 'ypmnoxpkdfrauebpxztxngcxtgufxzhlvsvcnhmrhdwkvznwcayvlefdyissiggdyjesfoqnmmraowykfavxikjzhckkqxcomdgcafxiztjlkmujjfwoybryszzgxndsjkebslqzinfntfjjbcqqeqwmvnqzfscubwtxclgehi',
            'organization_id' => 'voluptatem',
            'role_id' => 13,
            'project_visibility' => true,
            'playlist_visibility' => true,
            'activity_visibility' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/organizations/{organization_id}/default-sso-settings/{id}

PATCH api/v1/organizations/{organization_id}/default-sso-settings/{id}

URL Parameters

organization_id  integer  

The ID of the organization.

id  integer  

The ID of the default sso setting.

Body Parameters

lms_url  string  

Must be a valid URL. Must not be greater than 255 characters.

lms_access_token  string  

Must be at least 20 characters. Must not be greater than 255 characters.

site_name  string  

Must not be greater than 255 characters.

lti_client_id  string optional  

Must not be greater than 255 characters.

lms_name  string optional  

Must not be greater than 255 characters.

lms_access_key  string optional  

Must not be greater than 255 characters.

lms_access_secret  string optional  

This field is required when lms_access_key is present. Must not be greater than 255 characters.

description  string optional  

Must not be greater than 255 characters.

organization_id  string  

role_id  integer  

project_visibility  boolean optional  

playlist_visibility  boolean optional  

activity_visibility  boolean optional  

Remove the specified resource from storage.

Remove the specified resource from storage.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings/12" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/organizations/1/default-sso-settings/12"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/organizations/1/default-sso-settings/12',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/organizations/{organization_id}/default-sso-settings/{id}

URL Parameters

organization_id  integer  

The ID of the organization.

id  integer  

The ID of the default sso setting.

XApi File

Download XApi File

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/go/getxapifile/761" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/go/getxapifile/761"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/go/getxapifile/761',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "No query results for model [App\\Models\\Activity] 1",
    "exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
    "line": 385,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
            "line": 332,
            "function": "prepareException",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Exceptions\\Handler.php",
            "line": 53,
            "function": "render",
            "class": "Illuminate\\Foundation\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\nunomaduro\\collision\\src\\Adapters\\Laravel\\ExceptionHandler.php",
            "line": 54,
            "function": "render",
            "class": "App\\Exceptions\\Handler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php",
            "line": 51,
            "function": "render",
            "class": "NunoMaduro\\Collision\\Adapters\\Laravel\\ExceptionHandler",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 172,
            "function": "handleException",
            "class": "Illuminate\\Routing\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/go/getxapifile/{activity_id}

URL Parameters

activity_id  integer  

The ID of the activity.

activity  string  

Id of an activity

GET api/v1/h5p/ajax/files

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/ajax/files" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/ajax/files"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/ajax/files',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "Undefined index: REQUEST_METHOD",
    "exception": "ErrorException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\H5P\\laravel-h5p\\src\\LaravelH5p\\Http\\Controllers\\AjaxController.php",
    "line": 151,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\H5P\\laravel-h5p\\src\\LaravelH5p\\Http\\Controllers\\AjaxController.php",
            "line": 151,
            "function": "handleError",
            "class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php",
            "line": 54,
            "function": "files",
            "class": "Djoudi\\LaravelH5p\\Http\\Controllers\\AjaxController",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php",
            "line": 45,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 262,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 721,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php",
            "line": 50,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/ajax/files

POST api/v1/h5p/ajax/files

PUT api/v1/h5p/ajax/files

PATCH api/v1/h5p/ajax/files

DELETE api/v1/h5p/ajax/files

OPTIONS api/v1/h5p/ajax/files

GET api/v1/h5p/export/{id}

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/h5p/export/iusto" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/h5p/export/iusto"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/h5p/export/iusto',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "message": "SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for type bigint: \"iusto\" (SQL: \r\n            SELECT hc.id\r\n                , hc.title\r\n                , hc.parameters AS params\r\n                , hc.filtered\r\n                , hc.slug AS slug\r\n                , hc.user_id\r\n                , hc.embed_type AS \"embedType\"\r\n                , hc.disable\r\n                , hl.id AS \"libraryId\"\r\n                , hl.name AS \"libraryName\"\r\n                , hl.major_version AS \"libraryMajorVersion\"\r\n                , hl.minor_version AS \"libraryMinorVersion\"\r\n                , hl.embed_types AS \"libraryEmbedTypes\"\r\n                , hl.fullscreen AS \"libraryFullscreen\"\r\n                , hc.authors AS \"authors\"\r\n                , hc.source AS \"source\"\r\n                , hc.year_from AS \"yearFrom\"\r\n                , hc.year_to AS \"yearTo\"\r\n                , hc.license AS \"license\"\r\n                , hc.license_version AS \"licenseVersion\"\r\n                , hc.license_extras AS \"licenseExtras\"\r\n                , hc.author_comments AS \"authorComments\"\r\n                , hc.changes AS \"changes\"\r\n                , hc.default_language AS \"defaultLanguage\"\r\n            FROM h5p_contents hc\r\n            JOIN h5p_libraries hl ON hl.id = hc.library_id\r\n            WHERE hc.id = iusto\r\n        )",
    "exception": "Illuminate\\Database\\QueryException",
    "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
    "line": 712,
    "trace": [
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 672,
            "function": "runQueryCallback",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php",
            "line": 376,
            "function": "run",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\DatabaseManager.php",
            "line": 442,
            "function": "select",
            "class": "Illuminate\\Database\\Connection",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Facades\\Facade.php",
            "line": 261,
            "function": "__call",
            "class": "Illuminate\\Database\\DatabaseManager",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\H5P\\laravel-h5p\\src\\LaravelH5p\\Repositories\\LaravelH5pRepository.php",
            "line": 722,
            "function": "__callStatic",
            "class": "Illuminate\\Support\\Facades\\Facade",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\h5p\\h5p-core\\h5p.classes.php",
            "line": 2111,
            "function": "loadContent",
            "class": "Djoudi\\LaravelH5p\\Repositories\\LaravelH5pRepository",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\H5P\\laravel-h5p\\src\\LaravelH5p\\Http\\Controllers\\DownloadController.php",
            "line": 19,
            "function": "loadContent",
            "class": "H5PCore",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php",
            "line": 54,
            "function": "__invoke",
            "class": "Djoudi\\LaravelH5p\\Http\\Controllers\\DownloadController",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php",
            "line": 45,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 262,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 721,
            "function": "run",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php",
            "line": 50,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 723,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 698,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 662,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 651,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 167,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\app\\Http\\Middleware\\Cors.php",
            "line": 40,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "App\\Http\\Middleware\\Cors",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\fideloper\\proxy\\src\\TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 142,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 111,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 299,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 287,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 89,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 45,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 222,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 179,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 116,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 123,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 80,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 56,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 55,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 40,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 653,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 136,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 298,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 121,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 1040,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 301,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\symfony\\console\\Application.php",
            "line": 171,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Application.php",
            "line": 94,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 129,
            "function": "run",
            "class": "Illuminate\\Console\\Application",
            "type": "->"
        },
        {
            "file": "D:\\wamp64\\www\\ActiveLearningStudio-API-laravel-8\\artisan",
            "line": 37,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        }
    ]
}
 

Request      

GET api/v1/h5p/export/{id}

URL Parameters

id  string  

The ID of the export.

Canvas Teacher's data.

Save Canvas Teacher's data.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/go/passLtiCourseDetails" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/go/passLtiCourseDetails"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/go/passLtiCourseDetails',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/go/passLtiCourseDetails

Display error

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/error" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/error"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/error',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "errors": [
        "Unauthorized."
    ]
}
 

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "errors": [
        "Unauthorized."
    ]
}
 

Request      

GET api/v1/error

Users Basic Report

Returns the paginated response of the users with basic reporting (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/users/report/basic?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/report/basic"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/users/report/basic',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "current_page": 1,
    "data": [
        {
            "id": 1242,
            "first_name": "123security",
            "last_name": "products",
            "email": "wirelessproducts.wl@gmail.com",
            "projects_count": 2,
            "playlists_count": 9,
            "activities_count": 60
        },
        {
            "id": 824,
            "first_name": "168xoso",
            "last_name": "com",
            "email": "168xosocom@gmail.com",
            "projects_count": 2,
            "playlists_count": 9,
            "activities_count": 60
        }
    ],
    "first_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=1",
    "from": 1,
    "last_page": 816,
    "last_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=816",
    "next_page_url": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic?page=2",
    "path": "https://currikistudio.org/api/api/api/v1/admin/users/report/basic",
    "per_page": "2",
    "prev_page_url": null,
    "to": 2,
    "total": 1632
}
 

Request      

GET api/v1/admin/users/report/basic

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Bulk Import

Bulk import the users from CSV file.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/users/bulk/import" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "import_file=@C:\Users\Administrator\AppData\Local\Temp\php51EF.tmp" 
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/bulk/import"
);

const headers = {
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('import_file', document.querySelector('input[name="import_file"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/users/bulk/import',
    [
        'headers' => [
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'import_file',
                'contents' => fopen('C:\Users\Administrator\AppData\Local\Temp\php51EF.tmp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (206):


{
    "errors": [
        "Failed to import some rows data, please download detailed error report."
    ],
    "report": "https://currikistudio.org/api/storage/temporary/users-import-report.csv"
}
 

Example response (200):


{
    "message": "All users data imported successfully!"
}
 

Example response (500):


{
    "errors": [
        "Empty or bad formatted file, please download sample file for proper format."
    ]
}
 

Request      

POST api/v1/admin/users/bulk/import

Body Parameters

import_file  file  

The import file must be a file of type: CSV.

Change User Role

Make any user admin or remove from admin.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/users/2/roles/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/2/roles/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/users/2/roles/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User role is changed successfully!"
}
 

Example response (500):


{
    "errors": [
        "You cannot change the role of yourself."
    ]
}
 

Request      

GET api/v1/admin/users/{user_id}/roles/{role}

URL Parameters

user_id  integer  

The ID of the user.

role  string  

Role 0 or 1, 1 for making admin, 0 for removing from admin.

user  string  

The Id of a user.

Get All Users List

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/users?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/users',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1242,
            "name": "123security products",
            "email": "wirelessproducts.wl@gmail.com",
            "first_name": "123security",
            "last_name": "products",
            "job_title": "123securityproducts",
            "organization_type": "Architecture design",
            "is_admin": false,
            "organization_name": "North Kansas City Schools"
        },
        {
            "id": 824,
            "name": "168xoso com",
            "email": "168xosocom@gmail.com",
            "first_name": "168xoso",
            "last_name": "com",
            "job_title": "",
            "organization_type": "K-12",
            "is_admin": false,
            "organization_name": "North Kansas City Schools"
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/users?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/users?page=66",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/users?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 66,
        "path": "https://www.currikistudio.org/api/v1/admin/users",
        "per_page": "25",
        "to": 25,
        "total": 1632
    }
}
 

Request      

GET api/v1/admin/users

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Create User

Creates the new user in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"Ahmad\",
    \"last_name\": \"Mukhtar\",
    \"organization_name\": \"Studio\",
    \"organization_type\": \"K-12\",
    \"job_title\": \"2\",
    \"email\": \"ahmedmukhtar1133@gmail.com\",
    \"password\": \"kljd@Fi4R\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "Ahmad",
    "last_name": "Mukhtar",
    "organization_name": "Studio",
    "organization_type": "K-12",
    "job_title": "2",
    "email": "ahmedmukhtar1133@gmail.com",
    "password": "kljd@Fi4R"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/users',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'Ahmad',
            'last_name' => 'Mukhtar',
            'organization_name' => 'Studio',
            'organization_type' => 'K-12',
            'job_title' => '2',
            'email' => 'ahmedmukhtar1133@gmail.com',
            'password' => 'kljd@Fi4R',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User created successfully!",
    "data": [
        "Created User Data Array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create user, please try again later."
    ]
}
 

Request      

POST api/v1/admin/users

Body Parameters

first_name  string  

First name of the user.

last_name  string  

Last name of the user.

organization_name  string  

Organization name.

organization_type  string  

Valid organization type.

job_title  string  

Job title of the user in organization.

email  email  

Unique email for registration.

password  password  

Must be at-least 8 characters long, should contain at-least 1 Uppercase, 1 Lowercase and 1 Numeric character.

Get Specified User

Get the specified user data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "name": "Sample User",
        "email": "sample_user@test.com",
        "first_name": "Sample",
        "last_name": "User",
        "job_title": "Developer",
        "organization_type": "Architecture design",
        "is_admin": true,
        "organization_name": "North Kansas City Schools",
        "projects": [
            {
                "id": 9874,
                "name": "Activity Sampler",
                "description": "Studio Demos",
                "thumb_url": "",
                "shared": true,
                "starter_project": false,
                "is_user_starter": true,
                "cloned_from": 68,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "09-Oct-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 9952,
                "name": "Activity Sampler",
                "description": "Studio Demos",
                "thumb_url": "",
                "shared": true,
                "starter_project": false,
                "is_user_starter": true,
                "cloned_from": 68,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "09-Oct-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 80127,
                "name": "Testing creation",
                "description": "Testing after creation.",
                "thumb_url": "https://images.pexels.com/photos/3169299/pexels-photo-3169299.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&h=200&w=280",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "15-Oct-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 80071,
                "name": "Test",
                "description": "test",
                "thumb_url": "",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 2,
                "status_text": "FINISHED",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "13-Oct-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 80074,
                "name": "Boolean Type Cast Testing",
                "description": "Test",
                "thumb_url": "",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 2,
                "status_text": "FINISHED",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "13-Oct-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 2118,
                "name": "How well do you know?",
                "description": "How well do you know me?",
                "thumb_url": "",
                "shared": true,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "16-Sep-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 2170,
                "name": "Math Review",
                "description": "Math Review Unit 2",
                "thumb_url": "",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "16-Sep-2020",
                "updated_at": "15-Oct-2020"
            },
            {
                "id": 2169,
                "name": "Test",
                "description": "Exit Ticket test",
                "thumb_url": "",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": null,
                "indexing_text": "NOT REQUESTED",
                "created_at": "16-Sep-2020",
                "updated_at": "15-Oct-2020"
            }
        ]
    }
}
 

Request      

GET api/v1/admin/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Update Specified User

Updates the user data in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"Ahmad\",
    \"last_name\": \"Mukhtar\",
    \"organization_name\": \"Studio\",
    \"organization_type\": \"K-12\",
    \"job_title\": \"2\",
    \"email\": \"ahmedmukhtar1133@gmail.com\",
    \"password\": \"kljd@Fi4R\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "first_name": "Ahmad",
    "last_name": "Mukhtar",
    "organization_name": "Studio",
    "organization_type": "K-12",
    "job_title": "2",
    "email": "ahmedmukhtar1133@gmail.com",
    "password": "kljd@Fi4R"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'Ahmad',
            'last_name' => 'Mukhtar',
            'organization_name' => 'Studio',
            'organization_type' => 'K-12',
            'job_title' => '2',
            'email' => 'ahmedmukhtar1133@gmail.com',
            'password' => 'kljd@Fi4R',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User data updated successfully!",
    "data": [
        "Updated User Data Array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update user, please try again later."
    ]
}
 

Request      

PUT api/v1/admin/users/{id}

PATCH api/v1/admin/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Body Parameters

first_name  string  

First name of the user.

last_name  string  

Last name of the user.

organization_name  string  

Organization name.

organization_type  string  

Valid organization type.

job_title  string  

Job title of the user in organization.

email  email  

Valid Email.

password  password  

Must be at-least 8 characters long, should contain at-least 1 Uppercase, 1 Lowercase and 1 Numeric character.

Delete Specified User

Deletes the user record from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/users/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/users/2',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "User deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "You cannot delete your own user."
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to delete user, please try again later."
    ]
}
 

Request      

DELETE api/v1/admin/users/{id}

URL Parameters

id  integer  

The ID of the user.

user  string  

The Id of a user

Projects indexing Bulk

Modify the index value of a projects in bulk.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/projects/indexes" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"index_projects\": [
        1,
        2,
        3
    ],
    \"index\": 3
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/projects/indexes"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "index_projects": [
        1,
        2,
        3
    ],
    "index": 3
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/projects/indexes',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'index_projects' => [
                1,
                2,
                3,
            ],
            'index' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Indexes updated successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to update indexes, please try again later!"
    ]
}
 

Request      

POST api/v1/admin/projects/indexes

Body Parameters

index_projects  string[]  

Projects Ids array.

index  integer  

New Integer Index Value, 1 => 'REQUESTED', 2 => 'NOT APPROVED', 3 => 'APPROVED'.

Starter Project Toggle

Toggle the starter flag of any project

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/projects/starter/ut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"projects\": [
        1,
        2,
        3
    ],
    \"flag\": true
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/projects/starter/ut"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "projects": [
        1,
        2,
        3
    ],
    "flag": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/projects/starter/ut',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'projects' => [
                1,
                2,
                3,
            ],
            'flag' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Starter Projects status updated successfully!",
}
 

Example response (500):


{
    "errors": [
        "Choose at-least one project."
    ]
}
 

Request      

POST api/v1/admin/projects/starter/{flag}

URL Parameters

flag  string  

Body Parameters

projects  string[]  

Projects Ids array.

flag  boolean  

Selected projects remove or make starter.

Project Indexing

Modify the index value of a project.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/projects/3024/indexes/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/projects/3024/indexes/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/projects/3024/indexes/3',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Library status changed successfully!",
}
 

Example response (500):


{
    "errors": [
        "Invalid Library value provided."
    ]
}
 

Request      

GET api/v1/admin/projects/{project_id}/indexes/{index}

URL Parameters

project_id  integer  

The ID of the project.

index  string  

New Integer Index Value, 1 => 'REQUESTED', 2 => 'NOT APPROVED', 3 => 'APPROVED'.

project  string  

Project Id.

Get the shared project

Get the specified project data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/projects/3024/load-shared" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/projects/3024/load-shared"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/projects/3024/load-shared',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "name": "The Science of Golf",
        "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
        "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
        "shared": false,
        "indexing": 3,
        "indexing_text": "APPROVED",
        "created_at": "2020-04-30T20:03:12.000000Z",
        "updated_at": "2020-10-27T14:39:05.000000Z",
        "playlists": [
            {
                "id": 1,
                "title": "The Engineering & Design Behind Golf Balls",
                "project_id": 1,
                "created_at": null,
                "updated_at": "2020-09-17T09:44:27.000000Z",
                "activities": [
                    {
                        "id": 7,
                        "type": "h5p",
                        "title": "Famous Golf Holes",
                        "library_name": "H5P.Flashcards",
                        "thumb_url": null
                    },
                    {
                        "id": 5,
                        "type": "h5p",
                        "title": "The Evolution of the Golf Ball",
                        "library_name": "H5P.Timeline",
                        "thumb_url": null
                    },
                    {
                        "id": 6,
                        "type": "h5p",
                        "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                        "library_name": "H5P.InteractiveVideo",
                        "thumb_url": null
                    },
                    {
                        "id": 1,
                        "type": "h5p",
                        "title": "Science of Golf: Why Balls Have Dimples",
                        "library_name": "H5P.InteractiveVideo",
                        "thumb_url": null
                    },
                    {
                        "id": 2,
                        "type": "h5p",
                        "title": "Physics and Golf Balls",
                        "library_name": "H5P.Flashcards",
                        "thumb_url": null
                    },
                    {
                        "id": 3,
                        "type": "h5p",
                        "title": "Physics Vocabulary Study Guide",
                        "library_name": "H5P.Accordion",
                        "thumb_url": null
                    },
                    {
                        "id": 4,
                        "type": "h5p",
                        "title": "Labeling Golf Ball - Principles of Physics",
                        "library_name": "H5P.DragQuestion",
                        "thumb_url": null
                    }
                ]
            },
            {
                "id": 2,
                "title": "Topic 2",
                "project_id": 1,
                "created_at": null,
                "updated_at": "2020-09-17T09:44:27.000000Z",
                "activities": [
                    {
                        "id": 8,
                        "type": "h5p",
                        "title": "Physics of a Golf Ball",
                        "library_name": "H5P.DragQuestion",
                        "thumb_url": null
                    }
                ]
            }
        ]
    }
}
 

Request      

GET api/v1/admin/projects/{project_id}/load-shared

URL Parameters

project_id  integer  

The ID of the project.

project  string  

The Id of a project.

Get All Projects.

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/projects?mode=1&indexing=1&exclude_starter=0&start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/projects"
);

const params = {
    "mode": "1",
    "indexing": "1",
    "exclude_starter": "0",
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/projects',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'mode'=> '1',
            'indexing'=> '1',
            'exclude_starter'=> '0',
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/uploads/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "is_user_starter": false,
            "cloned_from": null,
            "clone_ctr": 1,
            "users": [],
            "status": 2,
            "status_text": "FINISHED",
            "indexing": 3,
            "indexing_text": "APPROVED",
            "created_at": "30-Apr-2020",
            "updated_at": "27-Oct-2020"
        },
        {
            "id": 2,
            "name": "Partner Content Projects",
            "description": "Partner Content Projects",
            "thumb_url": "/storage/uploads/iSioSGpjqWFE9DawcwR1nRIAnb1DuJaTgwWX6bkm.jpeg",
            "shared": false,
            "starter_project": false,
            "is_user_starter": false,
            "cloned_from": null,
            "clone_ctr": 0,
            "users": [],
            "status": 1,
            "status_text": "DRAFT",
            "indexing": null,
            "indexing_text": "NOT REQUESTED",
            "created_at": "30-Apr-2020",
            "updated_at": "15-Oct-2020"
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/projects?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/projects?page=10849",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/projects?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 10849,
        "path": "https://www.currikistudio.org/api/v1/admin/projects",
        "per_page": "2",
        "to": 2,
        "total": 21697
    }
}
 

Request      

GET api/v1/admin/projects

Query Parameters

mode  string optional  

1 for starter projects, 0 for non-starter. Default all.

indexing  string optional  

Integer value, 1 => 'REQUESTED', 2 => 'NOT APPROVED', 3 => 'APPROVED'. Default None.

exclude_starter  string optional  

Boolean value to exclude the user starter projects. Default false.

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Get All LMS Settings for listing.

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/lms-settings?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/lms-settings"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/lms-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "lms_url": "https://canvas2.curriki.org",
            "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
            "site_name": "Curriki Canvas Site #2",
            "lms_name": "canvas",
            "lms_access_key": null,
            "lms_access_secret": null,
            "description": "Curriki Canvas Site 2",
            "user_id": 3,
            "created_at": "2020-08-27T18:38:27.000000Z",
            "updated_at": "2020-08-27T18:38:27.000000Z",
            "deleted_at": null,
            "lti_client_id": null,
            "lms_login_id": null,
            "user": {
                "id": 3,
                "name": "Abby _",
                "email": "abby@curriki.org",
                "email_verified_at": "2020-09-11T23:52:44.000000Z",
                "created_at": "2020-04-06T20:47:21.000000Z",
                "updated_at": "2020-10-19T10:44:21.000000Z",
                "first_name": "Abby",
                "last_name": "_",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMA9EL2ZjzTyPOIv3cgdm7VZ6JHJ3WHgqaaYZJY4X5mKhq417RjMKiCOS36tu1E3sOwNALtVBTamNE_XyNLeDak-xZuU4lAtLV1Ap0Gi19AN10vpj5Sg57AJ3KgrT4G3THYkGF3y0BZ4r38QhdAvydlpkfn_KwCZBQ\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YOkD2Ocu__Xw4RutMMX9v-B-BEo_pAMXjGBSn6gx8S9fToe9FpA7M_OwrbGosxzx3LBuA28SCV2kIKwPd_qmJ2ctCRP4\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE0MzA3NzE2NTQwNTMzODE4OTQzIiwiaGQiOiJjdXJyaWtpLm9yZyIsImVtYWlsIjoiYWJieUBjdXJyaWtpLm9yZyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiSXBlejh3cm5uUmU3Y3p6U1NidFlJdyIsIm5hbWUiOiJBYmJ5IFJvc3MiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2cwYUVyeDRwUE1ZOVRPQXJiZ01KX3ZybHdsSzB6SEdBNVp3dFlVPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6IkFiYnkiLCJmYW1pbHlfbmFtZSI6IlJvc3MiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDM3NDQ4NywiZXhwIjoxNjAwMzc4MDg3LCJqdGkiOiI3NmUzNjU5M2I1NWEwYjhkMDBlZDZiODRmMmFmMmRiZmVkNDFhN2RhIn0.i9YToGr1CNLtk6zHX2f6dmP4PGB5ibyxFOFisPRvxe1YZvenGpyEh3MlSMkURvHzo2RGmYGkdhpJYHtn2b_TOqbsNsx61DUE4BTME5O_4-VcR-c_YDYFn6K3MpsrYLbSxDKTgdSJbA56B8-s726QzcFEixkU5mtaK5gbO4Zb32U94qF1_ziJ5XcEtaJt1kBY8oY15d3ubXJl-zLyh-fB9K4mqssqqWABbLAtJQycfx5x-9ks6iVHYXq-_tdnfadm7HBYROlcYzKc7VJkOAP5z-e05Zqx9C1NUXpW_-gFwiHazbC7_N_-UihSej2m3qULtIdgZMtT6fid4_LftXc38Q\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"1\"}},\"first_issued_at\":1600374485776,\"expires_at\":1600378084776,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "192.168.96.10",
                "membership_type_id": 2,
                "temp_password": null
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "domain": "currikistudio",
                "parent_id": null,
                "image": null,
                "created_at": null,
                "updated_at": null,
                "deleted_at": null,
                "self_registration": false,
                "account_id": "test123",
                "api_key": "test",
                "unit_path": "path"
            }
        },
        {
            "id": 2,
            "lms_url": "https://canvas2.curriki.org",
            "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
            "site_name": "Curriki Canvas Site #2",
            "lms_name": "canvas",
            "lms_access_key": null,
            "lms_access_secret": null,
            "description": "Curriki Canvas Site 2",
            "user_id": 726,
            "created_at": "2020-08-27T18:38:27.000000Z",
            "updated_at": "2020-08-27T18:38:27.000000Z",
            "deleted_at": null,
            "lti_client_id": null,
            "lms_login_id": null,
            "user": {
                "id": 726,
                "name": "Ayesha Jaleel",
                "email": "muhammadqamar111@gmail.com",
                "email_verified_at": "2020-09-11T23:56:57.000000Z",
                "created_at": "2020-08-05T15:45:11.000000Z",
                "updated_at": "2020-09-18T15:40:02.000000Z",
                "first_name": "ayesha",
                "last_name": "jaleel",
                "organization_name": "",
                "job_title": "",
                "address": null,
                "phone_number": null,
                "organization_type": null,
                "website": null,
                "deleted_at": null,
                "role": null,
                "gapi_access_token": "{\"token_type\":\"Bearer\",\"access_token\":\"ya29.a0AfH6SMAL6MLPZFPPhVHV_T0I4NoKnQvgjZde3NVh9EN_iEIr9hZWv9z1l7kg2gEDKL4ytQQPZc4vfjWwibQoFX35kfBZK8IW4oFkloCWGVjUiVQpIv-l3b0_WZA_vrBtiX__rDAbbcsK5f_qQ6Q46PlNYwZpFrSb5sg63w\",\"scope\":\"email profile https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.me openid https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses.readonly https:\\/\\/www.googleapis.com\\/auth\\/userinfo.profile https:\\/\\/www.googleapis.com\\/auth\\/classroom.courses https:\\/\\/www.googleapis.com\\/auth\\/classroom.coursework.students https:\\/\\/www.googleapis.com\\/auth\\/classroom.topics\",\"login_hint\":\"AJDLj6LgfEhLCFgVLEzicO4eYW1YEG1H6Z_EdBO9DcPh7Mh4zecJPEER1aZQlAuK9EACWTStds1zX0LniLDNBCxyVGW-meWH65rQ5EKowzaeeKw9Whrf0AI\",\"expires_in\":3599,\"id_token\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiODNmMTgwMjNhODU1NTg3Zjk0MmU3NTEwMjI1MTEyMDg4N2Y3MjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiODk4MTQzOTM5ODM0LTlpb3VpMmk5Z2hncm1jZ21ndGcwaDZyc2Y4M2QwdDBjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTA2NzA0NTczOTgxNzI2MTQ5NDI5IiwiZW1haWwiOiJtdWhhbW1hZHFhbWFyMTExQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoiS0JIT3JpdWJyQ0xyTVkzS01MN3lYdyIsIm5hbWUiOiJNdWhhbW1hZCBRYW1hciIsInBpY3R1cmUiOiJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vYS0vQU9oMTRHaDNkcnhWRkQtb2xCRHRHc2JzWC1OOUJXdVNUYmlkcHpNTF9IUDkxZz1zOTYtYyIsImdpdmVuX25hbWUiOiJNdWhhbW1hZCIsImZhbWlseV9uYW1lIjoiUWFtYXIiLCJsb2NhbGUiOiJlbiIsImlhdCI6MTYwMDQ0MzYwMiwiZXhwIjoxNjAwNDQ3MjAyLCJqdGkiOiJhZjI1NWI0Y2I5Y2FiMTcwZDc4ZTIzMjljNDU5OTM3MjlmYTA4MTY2In0.JTX2lWgOkyPpdvhP4ueLDR6zw0cY4reT6lK4HgOFJR4sGdhfsclDqD1Tw0r6XfTQQ_AjMnYz9cn-xGH5QyRShu9gGizCt3MeDFU62QiV9wyAgsSeXBxaL0eVD4Jt8eWg0pduaga9424Ov7iEJYT6owtwlPO0FZi9pROjOA9vbj9GUXEEwr-Qejv9UKxKhiZbnQhpyk9PCs5K9eTTdTTFUbNennRb4ZLPKVAek1PXQBMkQBOiH7gf6ycPUd-4HI9wHgj4ARqMpKIGpx-L3J7lod94M-0yRnvlzklivJay9EFvY31xQw1EbB0RcTkMBO9QppIkDGQ9ZxWQyhP1gt4FRA\",\"session_state\":{\"extraQueryParams\":{\"authuser\":\"0\"}},\"first_issued_at\":1600443602681,\"expires_at\":1600447201681,\"idpId\":\"google\"}",
                "hubspot": true,
                "subscribed": true,
                "subscribed_ip": "172.18.0.12",
                "membership_type_id": 2,
                "temp_password": null
            },
            "organization": {
                "id": 1,
                "name": "Curriki Studio",
                "description": "Curriki Studio, default organization.",
                "domain": "currikistudio",
                "parent_id": null,
                "image": null,
                "created_at": null,
                "updated_at": null,
                "deleted_at": null,
                "self_registration": false,
                "account_id": "test123",
                "api_key": "test",
                "unit_path": "path"
            }
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/lms-settings?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/lms-settings?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "https://www.currikistudio.org/api/v1/admin/lms-settings",
        "per_page": "25",
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/v1/admin/lms-settings

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Create LMS Setting

Creates the new lms setting in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/lms-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"https:\\/\\/google.com\",
    \"lms_access_token\": \"abcafdgd343asgretgdasgadsfsdfdasgdagsadf\",
    \"site_name\": \"Moodle Curriki\",
    \"lti_client_id\": \"1\",
    \"lms_login_id\": \"1\",
    \"user_id\": 1,
    \"lms_name\": \"Moodle\",
    \"lms_access_key\": \"fdaskfasdkjghadskljgh54r325\",
    \"lms_access_secret\": \"fasdjhjke4wh54354326\",
    \"description\": \"Create LMS Setting for providing access to Moodle.\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/lms-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "https:\/\/google.com",
    "lms_access_token": "abcafdgd343asgretgdasgadsfsdfdasgdagsadf",
    "site_name": "Moodle Curriki",
    "lti_client_id": "1",
    "lms_login_id": "1",
    "user_id": 1,
    "lms_name": "Moodle",
    "lms_access_key": "fdaskfasdkjghadskljgh54r325",
    "lms_access_secret": "fasdjhjke4wh54354326",
    "description": "Create LMS Setting for providing access to Moodle."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/lms-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'https://google.com',
            'lms_access_token' => 'abcafdgd343asgretgdasgadsfsdfdasgdagsadf',
            'site_name' => 'Moodle Curriki',
            'lti_client_id' => '1',
            'lms_login_id' => '1',
            'user_id' => 1,
            'lms_name' => 'Moodle',
            'lms_access_key' => 'fdaskfasdkjghadskljgh54r325',
            'lms_access_secret' => 'fasdjhjke4wh54354326',
            'description' => 'Create LMS Setting for providing access to Moodle.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Setting created successfully!",
    "data": [
        "Created Setting Data Array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create setting, please try again later!"
    ]
}
 

Request      

POST api/v1/admin/lms-settings

Body Parameters

lms_url  url  

Valid LMS URL.

lms_access_token  string  

Min 20 characters LMS Access Token.

site_name  string  

Site Name.

lti_client_id  string optional  

LTI Client ID for reference.

lms_login_id  string optional  

LMS Login ID for reference.

user_id  integer  

Valid ID of existing user.

lms_name  string optional  

LMS name for which setting is being configured.

lms_access_key  string optional  

Access key for LMS.

lms_access_secret  string  

Secret key is required if Access Key is provided.

description  text  

Brief description.

Get LMS Setting

Get the specified lms setting data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/lms-settings/et" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/lms-settings/et"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/lms-settings/et',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 1,
        "lms_url": "https://canvas2.curriki.org",
        "lms_access_token": "282tzGgLDzJOQA1mJPunRArzDvJFdUp4tLNiGqh8jhvQ7oJzPBhIaUp2h5LF6cXg",
        "site_name": "Curriki Canvas Site #2",
        "lti_client_id": null,
        "lms_login_id": null,
        "lms_name": "canvas",
        "lms_access_key": null,
        "lms_access_secret": null,
        "description": "Curriki Canvas Site 2",
        "user_id": 3,
        "user": {
            "id": 3,
            "name": "Abby _",
            "email": "abby@curriki.org",
            "first_name": "Abby",
            "last_name": "_",
            "job_title": "",
            "organization_type": null,
            "is_admin": false,
            "organization_name": ""
        },
        "organization": {
            "id": 1,
            "name": "Curriki Studio",
            "description": "Curriki Studio, default organization.",
            "domain": "currikistudio",
            "parent_id": null,
            "image": null,
            "created_at": null,
            "updated_at": null,
            "deleted_at": null,
            "self_registration": false,
            "account_id": "test123",
            "api_key": "test",
            "unit_path": "path"
        }
    }
}
 

Request      

GET api/v1/admin/lms-settings/{id}

URL Parameters

id  string  

The ID of the lms setting.

lms_setting  string  

The Id of a lms setting

Update LMS Setting

Updates the lms setting in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/lms-settings/unde" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"lms_url\": \"https:\\/\\/google.com\",
    \"lms_access_token\": \"abcafdgd343asgretgdasgadsfsdfdasgdagsadf\",
    \"site_name\": \"Moodle Curriki\",
    \"lti_client_id\": \"1\",
    \"lms_login_id\": \"1\",
    \"user_id\": 1,
    \"lms_name\": \"Moodle\",
    \"lms_access_key\": \"fdaskfasdkjghadskljgh54r325\",
    \"lms_access_secret\": \"fasdjhjke4wh54354326\",
    \"description\": \"Create LMS Setting for providing access to Moodle.\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/lms-settings/unde"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "lms_url": "https:\/\/google.com",
    "lms_access_token": "abcafdgd343asgretgdasgadsfsdfdasgdagsadf",
    "site_name": "Moodle Curriki",
    "lti_client_id": "1",
    "lms_login_id": "1",
    "user_id": 1,
    "lms_name": "Moodle",
    "lms_access_key": "fdaskfasdkjghadskljgh54r325",
    "lms_access_secret": "fasdjhjke4wh54354326",
    "description": "Create LMS Setting for providing access to Moodle."
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/lms-settings/unde',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'lms_url' => 'https://google.com',
            'lms_access_token' => 'abcafdgd343asgretgdasgadsfsdfdasgdagsadf',
            'site_name' => 'Moodle Curriki',
            'lti_client_id' => '1',
            'lms_login_id' => '1',
            'user_id' => 1,
            'lms_name' => 'Moodle',
            'lms_access_key' => 'fdaskfasdkjghadskljgh54r325',
            'lms_access_secret' => 'fasdjhjke4wh54354326',
            'description' => 'Create LMS Setting for providing access to Moodle.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "LMS setting data updated successfully!",
    "data": [
        "Updated LMS setting data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update LMS setting, please try again later."
    ]
}
 

Request      

PUT api/v1/admin/lms-settings/{id}

PATCH api/v1/admin/lms-settings/{id}

URL Parameters

id  string  

The ID of the lms setting.

lms_setting  string  

The Id of a lms setting

Body Parameters

lms_url  url  

Valid LMS URL.

lms_access_token  string  

Min 20 characters LMS Access Token.

site_name  string  

Site Name.

lti_client_id  string optional  

LTI Client ID for reference.

lms_login_id  string optional  

LMS Login ID for reference.

user_id  integer  

Valid ID of existing user.

lms_name  string optional  

LMS name for which setting is being configured.

lms_access_key  string optional  

Access key for LMS.

lms_access_secret  string  

Secret key is required if Access Key is provided.

description  text  

Brief description.

Delete LMS Setting

Deletes the lms setting from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/lms-settings/tenetur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/lms-settings/tenetur"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/lms-settings/tenetur',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "LMS setting deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to delete LMS setting, please try again later."
    ]
}
 

Request      

DELETE api/v1/admin/lms-settings/{id}

URL Parameters

id  string  

The ID of the lms setting.

lms_setting  string  

The Id of a lms setting

Get All Activity Types

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/activity-types?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-types"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/activity-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "title": "Audio",
            "order": 0,
            "image": "/storage/uploads/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
            "activityItems": [
                {
                    "id": 52,
                    "title": "Spoken Answers",
                    "description": "Voice recognition activity that the learner can answered with their own voice.",
                    "order": 3,
                    "activity_type_id": 7,
                    "type": "h5p",
                    "h5pLib": "H5P.SpeakTheWords 1.3",
                    "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "769",
                    "demo_video_id": "https://youtu.be/lgzsJDcMvPI"
                },
                {
                    "id": 50,
                    "title": "Audio Recorder",
                    "description": "Record your voice and play back or download a .wav file of your recording.",
                    "order": 1,
                    "activity_type_id": 7,
                    "type": "h5p",
                    "h5pLib": "H5P.AudioRecorder 1.0",
                    "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "768",
                    "demo_video_id": "https://youtu.be/O73hIb7yxLg"
                },
                {
                    "id": 51,
                    "title": "Dictation",
                    "description": "A tool to create dictation exercises",
                    "order": 2,
                    "activity_type_id": 7,
                    "type": "h5p",
                    "h5pLib": "H5P.Dictation 1.0",
                    "image": "/storage/uploads/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
                    "created_at": "2020-09-12T01:16:52.000000Z",
                    "updated_at": "2020-09-12T01:16:52.000000Z",
                    "deleted_at": null,
                    "demo_activity_id": "767",
                    "demo_video_id": "https://youtu.be/JLYtQpB0JmY"
                }
            ],
            "created_at": null,
            "updated_at": null
        },
        {
            "id": 13,
            "title": "Audio",
            "order": 0,
            "image": "/storage/activity-types/audio.png",
            "activityItems": [],
            "created_at": null,
            "updated_at": null
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/activity-types?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/activity-types?page=6",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/activity-types?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 6,
        "path": "https://www.currikistudio.org/api/v1/admin/activity-types",
        "per_page": "2",
        "to": 2,
        "total": 12
    }
}
 

Request      

GET api/v1/admin/activity-types

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Create New Activity Type

Creates the new activity type in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/activity-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Audio\",
    \"image\": \"unde\",
    \"order\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Audio",
    "image": "unde",
    "order": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/activity-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Audio',
            'image' => 'unde',
            'order' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity type created successfully!",
    "data": [
        "Created activity type data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create activity type, please try again later!"
    ]
}
 

Request      

POST api/v1/admin/activity-types

Body Parameters

title  string  

Activity Item Title.

image  image  

Valid Image.

order  integer  

At what order it should appear.

Get Specified Activity Type

Get the specified Activity Type data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/activity-types/7" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-types/7"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/activity-types/7',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 7,
        "title": "Audio",
        "order": 0,
        "image": "/storage/uploads/4kZL5uuExvNPngVsaIdC7JscWmstOTsYO8sBbekx.png",
        "activityItems": [
            {
                "id": 52,
                "title": "Spoken Answers",
                "description": "Voice recognition activity that the learner can answered with their own voice.",
                "order": 3,
                "activity_type_id": 7,
                "type": "h5p",
                "h5pLib": "H5P.SpeakTheWords 1.3",
                "image": "/storage/uploads/7iyRffLSS9QdFKCazDuDetl6WPk4BQP8tEP2eeuJ.png",
                "created_at": "2020-09-12T01:16:52.000000Z",
                "updated_at": "2020-09-12T01:16:52.000000Z",
                "deleted_at": null,
                "demo_activity_id": "769",
                "demo_video_id": "https://youtu.be/lgzsJDcMvPI"
            },
            {
                "id": 50,
                "title": "Audio Recorder",
                "description": "Record your voice and play back or download a .wav file of your recording.",
                "order": 1,
                "activity_type_id": 7,
                "type": "h5p",
                "h5pLib": "H5P.AudioRecorder 1.0",
                "image": "/storage/uploads/zGUwGiarxX5Xt0UDFMMHtJ3ICGy1F9W68cO0Ukm6.png",
                "created_at": "2020-09-12T01:16:52.000000Z",
                "updated_at": "2020-09-12T01:16:52.000000Z",
                "deleted_at": null,
                "demo_activity_id": "768",
                "demo_video_id": "https://youtu.be/O73hIb7yxLg"
            },
            {
                "id": 51,
                "title": "Dictation",
                "description": "A tool to create dictation exercises",
                "order": 2,
                "activity_type_id": 7,
                "type": "h5p",
                "h5pLib": "H5P.Dictation 1.0",
                "image": "/storage/uploads/WpXZiHcrkBmbSXE3OMOmHTovHKP3wzk9suHHfe1X.png",
                "created_at": "2020-09-12T01:16:52.000000Z",
                "updated_at": "2020-09-12T01:16:52.000000Z",
                "deleted_at": null,
                "demo_activity_id": "767",
                "demo_video_id": "https://youtu.be/JLYtQpB0JmY"
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/admin/activity-types/{id}

URL Parameters

id  integer  

The ID of the activity type.

activity_type  string  

The Id of a activity type

Update Specified Activity Type

Updates the activity type in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/activity-types/7" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Audio\",
    \"image\": \"quia\",
    \"order\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-types/7"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Audio",
    "image": "quia",
    "order": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/activity-types/7',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Audio',
            'image' => 'quia',
            'order' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity type data updated successfully!",
    "data": [
        "Updated activity type data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update activity type, please try again later."
    ]
}
 

Request      

PUT api/v1/admin/activity-types/{id}

PATCH api/v1/admin/activity-types/{id}

URL Parameters

id  integer  

The ID of the activity type.

activity_type  string  

The Id of a activity type

Body Parameters

title  string  

Activity Item Title.

image  image  

Valid Image.

order  integer  

At what order it should appear.

Delete Activity Type

Deletes the activity type from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/activity-types/7" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-types/7"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/activity-types/7',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Activity type deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to delete activity type, please try again later."
    ]
}
 

Request      

DELETE api/v1/admin/activity-types/{id}

URL Parameters

id  integer  

The ID of the activity type.

activity_type  string  

The Id of a activity type

Get All Activity Items

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/activity-items?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-items"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/activity-items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 81,
            "title": "Arithmetic Quiz",
            "description": "Time based arithmetic exam builder",
            "order": 2,
            "activityType": {
                "id": 11,
                "title": "Questions",
                "order": 0,
                "image": "/storage/uploads/E9wUgZpAvbmzogYIZYyABuWlvSIJPNYEFDqqL1rt.png",
                "created_at": null,
                "updated_at": null
            },
            "type": "h5p",
            "h5pLib": "H5P.ArithmeticQuiz 1.1",
            "image": "/storage/uploads/V2EzpoGzJi7F9KmWCUCwLF8uXKvr8Nsaunq6Uzw6.png",
            "demo_activity_id": "730",
            "demo_video_id": "https://youtu.be/Z61BUoL6k1Y",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z"
        },
        {
            "id": 87,
            "title": "Personality Quiz",
            "description": "Build your own personality quiz",
            "order": 8,
            "activityType": {
                "id": 11,
                "title": "Questions",
                "order": 0,
                "image": "/storage/uploads/E9wUgZpAvbmzogYIZYyABuWlvSIJPNYEFDqqL1rt.png",
                "created_at": null,
                "updated_at": null
            },
            "type": "h5p",
            "h5pLib": "H5P.PersonalityQuiz 1.0",
            "image": "/storage/uploads/jdHy6THv8aZLNrEdy3REa9aKZHcFdM6UXH3Lk7Nz.png",
            "demo_activity_id": "739",
            "demo_video_id": " https://youtu.be/zY8CTNn5LVA",
            "created_at": "2020-09-12T01:16:52.000000Z",
            "updated_at": "2020-09-12T01:16:52.000000Z"
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/activity-items?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/activity-items?page=2",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/activity-items?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "path": "https://www.currikistudio.org/api/v1/admin/activity-items",
        "per_page": "2",
        "to": 2,
        "total": 3
    }
}
 

Request      

GET api/v1/admin/activity-items

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Create New Activity Item

Creates the new activity item in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/activity-items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Math\",
    \"description\": \"Create Math activities.\",
    \"demo_activity_id\": 1,
    \"demo_video_id\": 1,
    \"image\": \"velit\",
    \"order\": 1,
    \"type\": \"h5p\",
    \"activity_type_id\": 1,
    \"h5pLib\": \"H5P.DocumentsUpload 1.0\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-items"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Math",
    "description": "Create Math activities.",
    "demo_activity_id": 1,
    "demo_video_id": 1,
    "image": "velit",
    "order": 1,
    "type": "h5p",
    "activity_type_id": 1,
    "h5pLib": "H5P.DocumentsUpload 1.0"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/activity-items',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Math',
            'description' => 'Create Math activities.',
            'demo_activity_id' => 1,
            'demo_video_id' => 1,
            'image' => 'velit',
            'order' => 1,
            'type' => 'h5p',
            'activity_type_id' => 1,
            'h5pLib' => 'H5P.DocumentsUpload 1.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity item created successfully!",
    "data": [
        "Created activity item data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to create activity item, please try again later!"
    ]
}
 

Request      

POST api/v1/admin/activity-items

Body Parameters

title  string  

Activity Item Title.

description  text  

Short description of activity item.

demo_activity_id  integer optional  

Demo Activity Id.

demo_video_id  integer optional  

Demo Video ID.

image  image  

Valid Image.

order  integer  

At what order it should appear.

type  string  

H5P OR Immersive Reader.

activity_type_id  integer  

Integer ID of parent activity type.

h5pLib  string  

H5P activity name & version.

Get Specified Activity Item

Get the specified Activity Item data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/activity-items/62" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-items/62"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/activity-items/62',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 53,
        "title": "Accordion",
        "description": "An activity that creates accessible (WAI-ARIA enabled) accordions",
        "order": 1,
        "activityType": {
            "id": 8,
            "title": "Informational",
            "order": 0,
            "image": "/storage/uploads/O8M6MvWrdtqrZSczhzzbTdCCDulrKxLJslYTzcwL.png",
            "created_at": null,
            "updated_at": null
        },
        "type": "h5p",
        "h5pLib": "H5P.Accordion 1.0",
        "image": "/storage/uploads/XprFXn7YfIpu6gBe8atabONmxDHwqfK5wdSkjfkL.png",
        "demo_activity_id": "763",
        "demo_video_id": "https://youtu.be/dVDFwhy93Vc",
        "created_at": "2020-09-12T01:16:52.000000Z",
        "updated_at": "2020-09-12T01:16:52.000000Z"
    }
}
 

Request      

GET api/v1/admin/activity-items/{id}

URL Parameters

id  integer  

The ID of the activity item.

activity_item  string  

The Id of a activity item

Update Specified Activity Item

Updates the activity item in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/activity-items/62" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"Math\",
    \"description\": \"Create Math activities.\",
    \"demo_activity_id\": 1,
    \"demo_video_id\": 1,
    \"image\": \"ducimus\",
    \"order\": 1,
    \"type\": \"h5p\",
    \"activity_type_id\": 1,
    \"h5pLib\": \"H5P.DocumentsUpload 1.0\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-items/62"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "Math",
    "description": "Create Math activities.",
    "demo_activity_id": 1,
    "demo_video_id": 1,
    "image": "ducimus",
    "order": 1,
    "type": "h5p",
    "activity_type_id": 1,
    "h5pLib": "H5P.DocumentsUpload 1.0"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/activity-items/62',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'Math',
            'description' => 'Create Math activities.',
            'demo_activity_id' => 1,
            'demo_video_id' => 1,
            'image' => 'ducimus',
            'order' => 1,
            'type' => 'h5p',
            'activity_type_id' => 1,
            'h5pLib' => 'H5P.DocumentsUpload 1.0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Activity item data updated successfully!",
    "data": [
        "Updated activity item data array"
    ]
}
 

Example response (500):


{
    "errors": [
        "Unable to update activity item, please try again later."
    ]
}
 

Request      

PUT api/v1/admin/activity-items/{id}

PATCH api/v1/admin/activity-items/{id}

URL Parameters

id  integer  

The ID of the activity item.

activity_item  string  

The Id of a activity item

Body Parameters

title  string  

Activity Item Title.

description  text  

Short description of activity item.

demo_activity_id  integer optional  

Demo Activity Id.

demo_video_id  integer optional  

Demo Video ID.

image  image  

Valid Image.

order  integer  

At what order it should appear.

type  string  

H5P OR Immersive Reader.

activity_type_id  integer  

Integer ID of parent activity type.

h5pLib  string  

H5P activity name & version.

Delete Activity Item

Deletes the activity item from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/activity-items/62" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/activity-items/62"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/activity-items/62',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Activity item deleted successfully!",
}
 

Example response (500):


{
    "errors": [
        "Unable to delete activity item, please try again later."
    ]
}
 

Request      

DELETE api/v1/admin/activity-items/{id}

URL Parameters

id  integer  

The ID of the activity item.

activity_item  string  

The Id of a activity item

Get All Organization Types

Returns the all organization types.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organization-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organization-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organization-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1,
            "name": "k12",
            "label": "K-12",
            "order": 0
        },
        {
            "id": 2,
            "name": "highered",
            "label": "Higher Education",
            "order": 1
        },
        {
            "id": 3,
            "name": "businesscorp",
            "label": "Business/Corporation",
            "order": 2
        },
        {
            "id": 4,
            "name": "nonprofit",
            "label": "Nonprofit",
            "order": 3
        },
        {
            "id": 5,
            "name": "govedu",
            "label": "Government/EDU",
            "order": 4
        },
        {
            "id": 6,
            "name": "other",
            "label": "Other",
            "order": 5
        }
    ]
}
 

Request      

GET api/v1/admin/organization-types

Create Organization Type

Creates the new organization type in database.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/organization-types" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"randomzv2tga01uxb6q8ojri5ob6\",
    \"label\": \"test\",
    \"order\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organization-types"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "randomzv2tga01uxb6q8ojri5ob6",
    "label": "test",
    "order": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/organization-types',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'randomzv2tga01uxb6q8ojri5ob6',
            'label' => 'test',
            'order' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "id": 7,
    "name": "randomzv2tga01uxb6q8ojri5ob6",
    "label": "test",
    "order": 6
}
 

Request      

POST api/v1/admin/organization-types

Body Parameters

name  string  

Unique organization type name.

label  string  

Unique label for organization type.

order  integer  

Order Sequence value.

Get Organization Type

Get the specified Organization Type data.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organization-types/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organization-types/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organization-types/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": 7,
    "name": "randomzv2tga01uxb6q8ojri5ob6",
    "label": "test",
    "order": 6
}
 

Request      

GET api/v1/admin/organization-types/{id}

URL Parameters

id  integer  

The ID of the organization type.

organization_type  string  

The Id of a organization type

Update Organization Type

Updates the organization type data in database.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/organization-types/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"randomzv2tga01uxb6q8ojri5ob6\",
    \"label\": \"test\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organization-types/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "randomzv2tga01uxb6q8ojri5ob6",
    "label": "test"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/organization-types/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'randomzv2tga01uxb6q8ojri5ob6',
            'label' => 'test',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):


{
    "id": 7,
    "name": "randomzv2tga01uxb6q8ojri5ob6",
    "label": "test",
    "order": 6
}
 

Request      

PUT api/v1/admin/organization-types/{id}

PATCH api/v1/admin/organization-types/{id}

URL Parameters

id  integer  

The ID of the organization type.

organization_type  string  

The Id of a organization type.

Body Parameters

name  string  

Updated organization type name.

label  string  

Updated label for organization type.

Delete Organization Type

Deletes the organization type from database.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/organization-types/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organization-types/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/organization-types/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Organization type deleted successfully!"
}
 

Example response (500):


{
    "message": "Failed to delete organization type."
}
 

Request      

DELETE api/v1/admin/organization-types/{id}

URL Parameters

id  integer  

The ID of the organization type.

organization_type  string  

The Id of a organization type.

Get All Jobs

Returns the pending or failed jobs paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor/jobs?filter=1&start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor/jobs"
);

const params = {
    "filter": "1",
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor/jobs',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter'=> '1',
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 128,
            "payload": "CloneProject",
            "queue": "default",
            "time": "1 day ago",
            "failed": false,
            "attempt": 1,
            "exception": "N/A"
        },
        {
            "id": 129,
            "payload": "CloneProject",
            "queue": "default",
            "time": "1 day ago",
            "failed": false,
            "attempt": 1,
            "exception": "Unable to clone project"
        }
    ],
    "links": {
        "first": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs?page=1",
        "last": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "path": "https://currikistudio.org/api/api/v1/admin/queue-monitor/jobs",
        "per_page": "2",
        "to": null,
        "total": 0
    }
}
 

Request      

GET api/v1/admin/queue-monitor/jobs

Query Parameters

filter  string optional  

1 for pending jobs, 2 for failed. Default 1.

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Retry All Failed Jobs

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/all" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/all"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "All failed jobs has been pushed back onto the queue!"
}
 

Request      

GET api/v1/admin/queue-monitor/jobs/retry/all

Delete All Failed Jobs

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/all" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/all"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "All failed jobs deleted successfully!"
}
 

Request      

GET api/v1/admin/queue-monitor/jobs/forget/all

Retry Specific Failed Job

Retry failed job by ID.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor/jobs/retry/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The failed job [1] has been pushed back onto the queue!"
}
 

Request      

GET api/v1/admin/queue-monitor/jobs/retry/{job}

URL Parameters

job  string  

The integer Id of a job.

Delete Specific Failed Job

Delete failed job by ID.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor/jobs/forget/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Failed job deleted successfully!"
}
 

Request      

GET api/v1/admin/queue-monitor/jobs/forget/{job}

URL Parameters

job  string  

The integer Id of a job.

Get All Queues Logs

Returns the paginated response with pagination links (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/queue-monitor?filter=1&start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/queue-monitor"
);

const params = {
    "filter": "1",
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/queue-monitor',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter'=> '1',
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 128,
            "job_id": "376471",
            "name": "CloneProject",
            "queue": "default",
            "started_at": "23 hours ago",
            "is_finished": true,
            "time_elapsed": "8.22 s",
            "failed": false,
            "attempt": 1,
            "exception_message": null
        },
        {
            "id": 127,
            "job_id": "376470",
            "name": "CloneActivity",
            "queue": "default",
            "started_at": "23 hours ago",
            "is_finished": true,
            "time_elapsed": "8.17 s",
            "failed": false,
            "attempt": 1,
            "exception_message": null
        }
    ],
    "links": {
        "first": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=1",
        "last": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=9",
        "prev": null,
        "next": "https://www.currikistudio.org/api/v1/admin/queue-monitor?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 9,
        "path": "https://www.currikistudio.org/api/v1/admin/queue-monitor",
        "per_page": "2",
        "to": 2,
        "total": 17
    }
}
 

Request      

GET api/v1/admin/queue-monitor

Query Parameters

filter  string optional  

1 for running jobs, 2 for failed, 3 for completed. Default all.

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Organization Basic Report

Returns the paginated response of the Organization with basic reporting (DataTables are fully supported - All Params).

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organizations/report/basic?start=0&length=25" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/report/basic"
);

const params = {
    "start": "0",
    "length": "25",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organizations/report/basic',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'start'=> '0',
            'length'=> '25',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "current_page": 1,
    "data": [
        {
            "id": 3,
            "name": "Suborganization",
            "description": "Suborganization description",
            "parent_id": 1,
            "projects_count": 0,
            "playlists_count": 0,
            "activities_count": 0
        },
        {
            "id": 4,
            "name": "org name",
            "description": "org description",
            "parent_id": 1,
            "projects_count": 0,
            "playlists_count": 0,
            "activities_count": 0
        }
    ],
    "first_page_url": "http://127.0.0.1:8000/api/v1/admin/organizations/report/basic?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "http://127.0.0.1:8000/api/v1/admin/organizations/report/basic?page=1",
    "next_page_url": null,
    "path": "http://127.0.0.1:8000/api/v1/admin/organizations/report/basic",
    "per_page": 25,
    "prev_page_url": null,
    "to": 15,
    "total": 2
}
 

Request      

GET api/v1/admin/organizations/report/basic

Query Parameters

start  string optional  

Offset for getting the paginated response, Default 0.

length  string optional  

Limit for getting the paginated records, Default 25.

Get Organizations

Get a list of the Organizations.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organizations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organizations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 3,
            "name": "Suborganization",
            "description": "Suborganization description",
            "parent": {
                "id": 1,
                "name": "org name 1",
                "description": "org description 1",
                "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
                "domain": "orgdomain1"
            },
            "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
            "domain": "suborganization"
        },
        {
            "id": 4,
            "name": "org name",
            "description": "org description",
            "parent": {
                "id": 1,
                "name": "org name 1",
                "description": "org description 1",
                "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
                "domain": "orgdomain1"
            },
            "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
            "domain": "orgdomain"
        }
    ],
    "links": {
        "first": "http://127.0.0.1:8000/api/v1/admin/organizations?page=1",
        "last": "http://127.0.0.1:8000/api/v1/admin/organizations?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://127.0.0.1:8000/api/v1/admin/organizations",
        "per_page": 25,
        "to": 15,
        "total": 2
    }
}
 

Request      

GET api/v1/admin/organizations

Create Organization

Create a new organization.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/admin/organizations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"tfa\",
    \"description\": \"This is a test organization.\",
    \"domain\": \"tfa\",
    \"image\": \"(binary)\",
    \"admin_id\": 1,
    \"parent_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "tfa",
    "description": "This is a test organization.",
    "domain": "tfa",
    "image": "(binary)",
    "admin_id": 1,
    "parent_id": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/admin/organizations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'tfa',
            'description' => 'This is a test organization.',
            'domain' => 'tfa',
            'image' => '(binary)',
            'admin_id' => 1,
            'parent_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Organization created successfully!",
    "data": {
        "id": 27,
        "name": "Admin Org",
        "description": "Admin Org",
        "image": "/storage/organizations/Iq0Rw2UvlsmO8DsZwCWNj396ruysLyEKGqiWaDqk.jpeg",
        "domain": "adminorg"
    }
}
 

Request      

POST api/v1/admin/organizations

Body Parameters

name  string  

Name of a organization

description  string  

Description of a organization

domain  string  

Domain of a organization

image  image  

Image to upload

admin_id  integer  

Id of the organization admin user

parent_id  integer optional  

Id of the parent organization

Get Organization

Get the specified organization detail.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organizations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organizations/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 25,
        "name": "Level 2 Org",
        "description": "Level 2 Org",
        "parent": {
            "id": 24,
            "name": "Level 1 Org",
            "description": "Level 1 Org",
            "image": "/storage/organizations/qlz5YienwWryZAhoWSfJxJPzYp5JU2Vp8FQeiCzW.jpeg",
            "domain": "level1org"
        },
        "projects": [
            {
                "id": 2456,
                "name": "name",
                "description": "description",
                "thumb_url": "/storage/projects/T4gQGR692EgWCUw9Kw8JeujIlPnJ7najoX8D5L8F.jpeg",
                "shared": false,
                "starter_project": null,
                "is_user_starter": false,
                "cloned_from": null,
                "clone_ctr": 0,
                "status": 1,
                "status_text": "DRAFT",
                "indexing": 3,
                "indexing_text": "APPROVED",
                "created_at": "13-Jan-2021",
                "updated_at": "13-Jan-2021"
            }
        ],
        "users": [
            {
                "id": 1,
                "name": "local user",
                "email": "localuser@local.com",
                "first_name": "local",
                "last_name": "user",
                "job_title": "",
                "organization_type": null,
                "is_admin": false,
                "organization_name": "",
                "organization_role": "Administrator",
                "created_at": "06-Apr-2020",
                "updated_at": "13-Jan-2021"
            }
        ],
        "image": "/storage/organizations/Yuxzr7NOMLj7O5eJba6FmSoxFpt126EDYnkmg5r2.jpeg",
        "domain": "level2org"
    }
}
 

Request      

GET api/v1/admin/organizations/{id}

URL Parameters

id  string  

The Id of the organization

Update Organization

Update the specified organization.

Example request:
curl --request PUT \
    "http://localhost:8000/api/v1/admin/organizations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"tfa\",
    \"description\": \"This is a test organization.\",
    \"domain\": \"tfa\",
    \"image\": \"(binary)\",
    \"member_id\": 1,
    \"parent_id\": 1
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "tfa",
    "description": "This is a test organization.",
    "domain": "tfa",
    "image": "(binary)",
    "member_id": 1,
    "parent_id": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'http://localhost:8000/api/v1/admin/organizations/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'tfa',
            'description' => 'This is a test organization.',
            'domain' => 'tfa',
            'image' => '(binary)',
            'member_id' => 1,
            'parent_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Organization created successfully!",
    "data": {
        "id": 27,
        "name": "Admin Org",
        "description": "Admin Org",
        "image": "/storage/organizations/Iq0Rw2UvlsmO8DsZwCWNj396ruysLyEKGqiWaDqk.jpeg",
        "domain": "adminorg"
    }
}
 

Request      

PUT api/v1/admin/organizations/{id}

PATCH api/v1/admin/organizations/{id}

URL Parameters

id  string  

The Id of a organization

Body Parameters

name  string  

Name of a organization

description  string  

Description of a organization

domain  string  

Domain of a organization

image  image optional  

Image to upload

member_id  integer optional  

Id of the user to add as member in organization

parent_id  integer optional  

Id of the parent organization

Remove Organization

Remove the specified organization.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/organizations/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/organizations/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Organization Deleted!"
}
 

Request      

DELETE api/v1/admin/organizations/{id}

URL Parameters

id  integer  

The Id of a organization

Remove Organization User

Remove the user from the specified organization.

Example request:
curl --request DELETE \
    "http://localhost:8000/api/v1/admin/organizations/1/user/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"organization\": 19,
    \"user\": 10
}"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1/user/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "organization": 19,
    "user": 10
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'http://localhost:8000/api/v1/admin/organizations/1/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'organization' => 19,
            'user' => 10,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Organization User Deleted!",
}
 

Example response (500):


{
    "errors": [
        "Failed to delete user."
    ]
}
 

Request      

DELETE api/v1/admin/organizations/{organization}/user/{user}

URL Parameters

organization  integer  

Id of the organization to deleted user from.

user  integer  

Id of the user to be deleted.

Body Parameters

organization  integer optional  

user  integer  

Display parent organizations options

Display a listing of the parent organizations options, other then itself and its exiting children.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organizations/1/parent-options" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1/parent-options"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organizations/1/parent-options',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 4,
            "name": "org name",
            "description": "org description",
            "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
            "domain": "orgdomain"
        },
        {
            "id": 6,
            "name": "org name 6 test2",
            "description": "org description6",
            "image": "/storage/organizations/jlvKGDV1XjzIzfNrm1Py8gqgVkHpENwLoQj6OMjV.jpeg",
            "domain": "orgdomain6"
        }
    ],
    "links": {
        "first": "http://127.0.0.1:8000/api/v1/admin/organizations/3/parent-options?page=1",
        "last": "http://127.0.0.1:8000/api/v1/admin/organizations/3/parent-options?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://127.0.0.1:8000/api/v1/admin/organizations/3/parent-options",
        "per_page": 15,
        "to": 12,
        "total": 2
    }
}
 

Request      

GET api/v1/admin/organizations/{id}/parent-options

URL Parameters

id  integer  

The Id of a organization

Display member options

Display a listing of the user member options, other then the exiting ones.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/organizations/1/member-options" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/organizations/1/member-options"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/organizations/1/member-options',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 1242,
            "name": "123security products",
            "email": "wirelessproducts.wl@gmail.com",
            "first_name": "123security",
            "last_name": "products",
            "job_title": "123securityproducts",
            "organization_type": null,
            "is_admin": false,
            "organization_name": "123securityproducts",
            "created_at": "14-Sep-2020",
            "updated_at": "14-Sep-2020"
        },
        {
            "id": 824,
            "name": "168xoso com",
            "email": "168xosocom@gmail.com",
            "first_name": "168xoso",
            "last_name": "com",
            "job_title": "",
            "organization_type": null,
            "is_admin": false,
            "organization_name": "168xoso - Trực tiếp kết quả xổ số miền bắc",
            "created_at": "12-Aug-2020",
            "updated_at": "12-Aug-2020"
        }
    ],
    "links": {
        "first": "http://127.0.0.1:8000/api/v1/admin/organizations/3/member-options?page=1",
        "last": "http://127.0.0.1:8000/api/v1/admin/organizations/3/member-options?page=109",
        "prev": null,
        "next": "http://127.0.0.1:8000/api/v1/admin/organizations/3/member-options?page=2"
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 109,
        "path": "http://127.0.0.1:8000/api/v1/admin/organizations/3/member-options",
        "per_page": 15,
        "to": 15,
        "total": 2
    }
}
 

Request      

GET api/v1/admin/organizations/{id}/member-options

URL Parameters

id  integer  

The Id of a organization

Download Sample File

Download import sample file for users.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/admin/users/import/sample-file" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/admin/users/import/sample-file"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/admin/users/import/sample-file',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "file": "Downloadable sample file."
}
 

Example response (500):


{
    "errors": [
        "Sample file not found!"
    ]
}
 

Request      

GET api/v1/admin/users/import/sample-file

H5P H5P Resource Settings

Get H5P Resource Settings

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/brightcove/1/1/1/1/h5p-resource-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/brightcove/1/1/1/1/h5p-resource-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/brightcove/1/1/1/1/h5p-resource-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


{
    "h5p": null
}
 

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/brightcove/{accountId}/{videoId}/{dataPlayer}/{dataEmbed}/h5p-resource-settings

URL Parameters

accountId  string  

For brightcove video

videoId  string  

For brightcove video

dataPlayer  string  

For brightcove video

dataEmbed  string  

For brightcove video

Get Brightcove H5P Resource Settings

Get H5P Resource Settings For Brightcove

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/brightcove/1/h5p-resource-settings" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/brightcove/1/h5p-resource-settings"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/brightcove/1/h5p-resource-settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):


{
    "h5p": null
}
 

Example response (200):


{
    "h5p": {
        "id": 59,
        "title": "Science of Golf: Why Balls Have Dimples",
        "params": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
        "slug": "science-of-golf-why-balls-have-dimples",
        "user_id": 1,
        "embedType": "div",
        "disable": 9,
        "libraryMajorVersion": 1,
        "libraryMinorVersion": 21,
        "authors": null,
        "source": null,
        "yearFrom": null,
        "yearTo": null,
        "licenseVersion": null,
        "licenseExtras": null,
        "authorComments": null,
        "changes": null,
        "defaultLanguage": null,
        "metadata": {
            "title": "Science of Golf: Why Balls Have Dimples",
            "license": "U"
        },
        "library": {
            "id": 40,
            "name": "H5P.InteractiveVideo",
            "majorVersion": 1,
            "minorVersion": 21,
            "embedTypes": "iframe",
            "fullscreen": 1
        },
        "language": "en",
        "tags": ""
    },
    "activity": {
        "id": 1,
        "playlist_id": 1,
        "title": "Science of Golf: Why Balls Have Dimples",
        "type": "h5p",
        "content": "",
        "shared": false,
        "order": 2,
        "thumb_url": null,
        "subject_id": null,
        "education_level_id": null,
        "h5p_content": {
            "id": 59,
            "created_at": "2020-04-30T20:24:58.000000Z",
            "updated_at": "2020-04-30T20:24:58.000000Z",
            "user_id": 1,
            "title": "Science of Golf: Why Balls Have Dimples",
            "library_id": 40,
            "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
            "slug": "science-of-golf-why-balls-have-dimples",
            "embed_type": "div",
            "disable": 9,
            "content_type": null,
            "authors": null,
            "source": null,
            "year_from": null,
            "year_to": null,
            "license": "U",
            "license_version": null,
            "license_extras": null,
            "author_comments": null,
            "changes": null,
            "default_language": null
        },
        "is_public": false,
        "created_at": null,
        "updated_at": null
    },
    "playlist": {
        "id": 1,
        "title": "The Engineering & Design Behind Golf Balls",
        "order": 0,
        "is_public": true,
        "project_id": 1,
        "project": {
            "id": 1,
            "name": "The Science of Golf",
            "description": "Uncover the science, technology, engineering, and mathematics behind the game of golf.",
            "thumb_url": "/storage/projects/nN5y8v8zh2ghxrKuHCv5wvJOREFw0Nr27s2DPxWq.png",
            "shared": false,
            "starter_project": false,
            "users": [
                {
                    "id": 1,
                    "email": "john.doe@currikistudio.org",
                    "first_name": "John",
                    "last_name": "Doe",
                    "role": "owner"
                }
            ],
            "is_public": true,
            "created_at": "2020-04-30T20:03:12.000000Z",
            "updated_at": "2020-07-11T12:51:07.000000Z"
        },
        "activities": [
            {
                "id": 4,
                "playlist_id": 1,
                "title": "Labeling Golf Ball - Principles of Physics",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 0,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 65,
                    "created_at": "2020-04-30T23:40:49.000000Z",
                    "updated_at": "2020-04-30T23:40:49.000000Z",
                    "user_id": 1,
                    "title": "Labeling Golf Ball - Principles of Physics",
                    "library_id": 19,
                    "parameters": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"type\":{\"library\":\"H5P.DragQuestionDropzone 0.1\"},\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "filtered": "{\"scoreShow\":\"Check\",\"tryAgain\":\"Retry\",\"scoreExplanation\":\"Correct answers give +1 point. Incorrect answers give -1 point. The lowest possible score is 0.\",\"question\":{\"settings\":{\"size\":{\"width\":620,\"height\":310},\"background\":{\"path\":\"images/background-5eab614083be2.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":620,\"height\":310}},\"task\":{\"elements\":[{\"x\":0,\"y\":47.96909692035003,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Lift</p>\\n\"},\"subContentId\":\"be1d9b11-91ff-4e59-a7c6-9966e1bf8cb2\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Lift\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":58.810763796296285,\"width\":7.812090416666667,\"height\":1.3537570833333332,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Drag</p>\\n\"},\"subContentId\":\"05a00202-b5dd-44a9-acf1-0cce77278b33\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"backgroundOpacity\":100,\"multiple\":false},{\"x\":-4.63163666049382e-8,\"y\":36.89236101851851,\"width\":7.812090416666667,\"height\":1.281997824074074,\"dropZones\":[\"0\",\"1\",\"2\"],\"type\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p>Spin</p>\\n\"},\"subContentId\":\"140a5423-873b-46d4-8f4f-9b236cefce20\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Spin\"}},\"backgroundOpacity\":100,\"multiple\":false}],\"dropZones\":[{\"x\":72.35516653328209,\"y\":14.75972212933847,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"0\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Lift</div>\\n\"},{\"x\":72.35484909201396,\"y\":36.89236101851851,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"1\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Drag</div>\\n\"},{\"x\":72.35516653328209,\"y\":51.65902745268465,\"width\":8.61111111111111,\"height\":2.511574074074074,\"correctElements\":[\"2\"],\"showLabel\":false,\"backgroundOpacity\":50,\"tipsAndFeedback\":{\"tip\":\"\"},\"single\":true,\"autoAlign\":true,\"label\":\"<div>Spin</div>\\n\"}]}},\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableCheckButton\":true,\"showSolutionsRequiresInput\":true,\"singlePoint\":false,\"applyPenalties\":true,\"enableScoreExplanation\":true,\"dropZoneHighlighting\":\"dragging\",\"autoAlignSpacing\":2,\"enableFullScreen\":false,\"showScorePoints\":true,\"showTitle\":true},\"grabbablePrefix\":\"Grabbable {num} of {total}.\",\"grabbableSuffix\":\"Placed in dropzone {num}.\",\"dropzonePrefix\":\"Dropzone {num} of {total}.\",\"noDropzone\":\"No dropzone.\",\"tipLabel\":\"Show tip.\",\"tipAvailable\":\"Tip available\",\"correctAnswer\":\"Correct answer\",\"wrongAnswer\":\"Wrong answer\",\"feedbackHeader\":\"Feedback\",\"scoreBarLabel\":\"You got :num out of :total points\",\"scoreExplanationButtonLabel\":\"Show score explanation\",\"localize\":{\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit fullscreen\"}}",
                    "slug": "labeling-golf-ball-principles-of-physics",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 17774,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:22:47.000000Z",
                "updated_at": "2020-08-30T20:22:47.000000Z"
            },
            {
                "id": 17776,
                "playlist_id": 1,
                "title": "Latest",
                "type": "h5p",
                "content": "test",
                "shared": false,
                "order": null,
                "thumb_url": "/storage/activities/DrV6rZ6ZDXFMT1k51gbOqw04rqguq6CMtiiD1nDH.png",
                "subject_id": "Mathematics",
                "education_level_id": null,
                "h5p_content": {
                    "id": 19334,
                    "created_at": "2020-08-30T20:09:56.000000Z",
                    "updated_at": "2020-08-30T20:09:56.000000Z",
                    "user_id": 1,
                    "title": "Latest",
                    "library_id": 98,
                    "parameters": "{\"l10n\":{\"recordAnswer\":\"Record\",\"pause\":\"Pause\",\"continue\":\"Continue\",\"download\":\"Download\",\"done\":\"Done\",\"retry\":\"Retry\",\"microphoneNotSupported\":\"Microphone not supported. Make sure you are using a browser that allows microphone recording.\",\"microphoneInaccessible\":\"Microphone is not accessible. Make sure that the browser microphone is enabled.\",\"insecureNotAllowed\":\"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS\",\"statusReadyToRecord\":\"Press a button below to record your answer.\",\"statusRecording\":\"Recording...\",\"statusPaused\":\"Recording paused. Press a button to continue recording.\",\"statusFinishedRecording\":\"You have successfully recorded your answer! Listen to the recording below.\",\"downloadRecording\":\"Download this recording or retry.\",\"retryDialogHeaderText\":\"Retry recording?\",\"retryDialogBodyText\":\"By pressing \\\"Retry\\\" you will lose your current recording.\",\"retryDialogConfirmText\":\"Retry\",\"retryDialogCancelText\":\"Cancel\",\"statusCantCreateTheAudioFile\":\"Can't create the audio file.\"}}",
                    "filtered": "",
                    "slug": "latest",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": "2020-08-30T20:24:29.000000Z",
                "updated_at": "2020-08-30T20:24:29.000000Z"
            },
            {
                "id": 3,
                "playlist_id": 1,
                "title": "Physics Vocabulary Study Guide",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 1,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 61,
                    "created_at": "2020-04-30T20:35:30.000000Z",
                    "updated_at": "2020-04-30T20:35:30.000000Z",
                    "user_id": 1,
                    "title": "Physics Vocabulary Study Guide",
                    "library_id": 63,
                    "parameters": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Acceleration is the measurement of the change </span></span></span><span style=\\\"font-size:11.0pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\">in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span style=\\\"font-size:10.5pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:&quot;Calibri&quot;,sans-serif\\\"><span style=\\\"color:black\\\">Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:normal\\\"><span style=\\\"font-family:Calibri,sans-serif\\\"><span style=\\\"font-size:10.5pt\\\"><span style=\\\"color:black\\\">A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p style=\\\"margin-bottom:10px\\\"><span style=\\\"font-size:11pt\\\"><span style=\\\"line-height:107%\\\"><span style=\\\"font-family:Calibri,sans-serif\\\">Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "filtered": "{\"panels\":[{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Acceleration is the measurement of the change </span></span></span><span><span><span>in an object\\u2019s velocity. </span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"97578055-d386-46be-afe3-c19eae4108aa\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Acceleration\"}},\"title\":\"Acceleration\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>The faster the air moves, the less pressure it exerts.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"0ce32fbf-4ff1-465b-9c50-8876c5fef34d\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Bernoulli\\u2019s Principle\"}},\"title\":\"Bernoulli\\u2019s Principle\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>A vector is a quantity that has both a magnitude and a direction.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"cead752e-0c29-4acb-b9ae-2f61a3cd5c9b\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Vector\"}},\"title\":\"Vector\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span>Drag is the force that acts opposite to the direction of motion. Drag is caused by friction and differences in air pressure.</span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"6ae4b819-276d-405e-b085-e894c31484d3\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Drag\"}},\"title\":\"Drag\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span><span><span>A turbulent flow is one in which the particles have irregular, fluctuating motions and erratic paths.</span></span></span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"f9f63fdd-0a8a-4259-a3f1-ca7271b51727\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Turbulent airflow\"}},\"title\":\"Turbulent airflow\"},{\"content\":{\"params\":{\"text\":\"<p><span><span><span>Friction is the resistance of motion when one object rubs against another. It is a force and is measured in newtons.</span></span></span></p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"subContentId\":\"236c832f-f754-47d6-8d2c-1311a354d861\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Friction\"}},\"title\":\"Friction\"}],\"hTag\":\"h2\"}",
                    "slug": "physics-vocabulary-study-guide",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 1,
                "playlist_id": 1,
                "title": "Science of Golf: Why Balls Have Dimples",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 2,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 59,
                    "created_at": "2020-04-30T20:24:58.000000Z",
                    "updated_at": "2020-04-30T20:24:58.000000Z",
                    "user_id": 1,
                    "title": "Science of Golf: Why Balls Have Dimples",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://youtu.be/fcjaxC-e8oY\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":58.33,\"to\":68.33},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"133bca3d-cfe9-442d-a887-8bf1e2ce682a\",\"question\":\"<p>Why do golf balls have dimples?</p>\\n\",\"answers\":[\"<p>They reduce wind resistance.</p>\\n\",\"<p>They make the ball more visually interesting.</p>\\n\",\"<p>They grip the putting green better than a smooth ball.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"ac029b43-7225-49ed-a2d7-8656037748e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Why do golf balls have dimples?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Why do golf balls have dimples?</p>\\n\"},{\"x\":45.96541786743516,\"y\":42.78350515463918,\"width\":10,\"height\":10,\"duration\":{\"from\":132.969,\"to\":142.969},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"308503f3-8d41-4f4f-b016-587bcce3dfac\",\"question\":\"<p>A smooth ball will have a detached airflow, which causes what?</p>\\n\",\"answers\":[\"<p>A low pressure zone, which is what causes drag.</p>\\n\",\"<p>The ball has no spin.</p>\\n\",\"<p>The ball travels higher, but for a shorter distance.</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"f70c849d-9542-4f30-9116-8b60b7da708d\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Smooth Ball?\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"<p>Smooth Ball</p>\\n\"}],\"endscreens\":[{\"time\":295,\"label\":\"4:55 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"8e2cf84f-4557-4f79-a03e-526838498a7d\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"8d5527ef-3601-4ad9-9e63-2782c9775173\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":false,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "science-of-golf-why-balls-have-dimples",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 2,
                "playlist_id": 1,
                "title": "Physics and Golf Balls",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 3,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 60,
                    "created_at": "2020-04-30T20:31:11.000000Z",
                    "updated_at": "2020-04-30T20:31:11.000000Z",
                    "user_id": 1,
                    "title": "Physics and Golf Balls",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "filtered": "{\"cards\":[{\"text\":\"Is the measurement of the change in an object\\u2019s velocity called Speed or Acceleration?\",\"answer\":\"Acceleration\",\"image\":{\"path\":\"images/image-5eab35098aaf0.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Dimples reduce wind resistance or aerodynamic drag. Does that make the ball go farther or faster?\",\"answer\":\"Farther\",\"image\":{\"path\":\"images/image-5eab355f7ca78.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720},\"tip\":\"\"},{\"text\":\"Do dimples on a ball increase or decrease the lift?\",\"answer\":\"Increase\",\"image\":{\"path\":\"images/image-5eab3589be9e3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":634,\"height\":508},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"See if you can remember what you learned!\"}",
                    "slug": "physics-and-golf-balls",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 6,
                "playlist_id": 1,
                "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 4,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 75,
                    "created_at": "2020-05-01T04:51:11.000000Z",
                    "updated_at": "2020-05-01T04:51:11.000000Z",
                    "user_id": 1,
                    "title": "Understanding Gear Effect | Equipment and Tech | 18Birdies",
                    "library_id": 40,
                    "parameters": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"},\"aspectRatio\":\"16:9\"}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"type\":{\"params\":{}},\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"bookmarks\":[],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\",\"authors\":[],\"changes\":[],\"extraTitle\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "filtered": "{\"interactiveVideo\":{\"video\":{\"startScreenOptions\":{\"title\":\"Interactive Video\",\"hideStartTitle\":false},\"textTracks\":{\"videoTrack\":[{\"label\":\"Subtitles\",\"kind\":\"subtitles\",\"srcLang\":\"en\"}]},\"files\":[{\"path\":\"https://www.youtube.com/watch?v=FdH0JQL5E-U&amp;list=PLVIShUJLAj0rWw3Yr3VtFGH4IbIVMfQFo\",\"mime\":\"video/YouTube\",\"copyright\":{\"license\":\"U\"}}]},\"assets\":{\"interactions\":[{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":52,\"to\":52},\"libraryTitle\":\"Single Choice Set\",\"action\":{\"library\":\"H5P.SingleChoiceSet 1.11\",\"params\":{\"choices\":[{\"subContentId\":\"c9f0c83d-2ba2-4810-843a-1ee7bec2076f\",\"question\":\"<p>\\\"Torque\\\"&nbsp;is&nbsp;a property of golf&nbsp;shafts that describes how much the shaft is&nbsp;prone to twisting during the golf&nbsp;swing.</p>\\n\",\"answers\":[\"<p>True</p>\\n\",\"<p>False</p>\\n\"]},{\"subContentId\":\"81f2e02c-0f04-44a3-922c-4eac61a11acb\",\"question\":\"<p>... A shaft with a _____ torque&nbsp;rating means&nbsp;the shaft better resists twisting; a shaft with a ____ torque&nbsp;rating means&nbsp;the shaft is&nbsp;more prone to twisting (all other things being equal).</p>\\n\",\"answers\":[\"<p>lower,&nbsp;higher</p>\\n\",\"<p>higher, lower</p>\\n\",\"<p>sharper, duller</p>\\n\",\"<p>straigher, curved</p>\\n\"]}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"autoContinue\":true,\"timeoutCorrect\":2000,\"timeoutWrong\":3000,\"soundEffectsEnabled\":true,\"enableRetry\":true,\"enableSolutionsButton\":true,\"passPercentage\":100},\"l10n\":{\"nextButtonLabel\":\"Next question\",\"showSolutionButtonLabel\":\"Show solution\",\"retryButtonLabel\":\"Retry\",\"solutionViewTitle\":\"Solution list\",\"correctText\":\"Correct!\",\"incorrectText\":\"Incorrect!\",\"muteButtonLabel\":\"Mute feedback sound\",\"closeButtonLabel\":\"Close\",\"slideOfTotal\":\"Slide :num of :total\",\"scoreBarLabel\":\"You got :num out of :total points\",\"solutionListQuestionNumber\":\"Question :num\"}},\"subContentId\":\"eadebb1e-891e-4ff3-8676-943c2616a9e0\",\"metadata\":{\"contentType\":\"Single Choice Set\",\"license\":\"U\",\"title\":\"Untitled Single Choice Set\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":24.314,\"to\":34.314},\"libraryTitle\":\"Statements\",\"action\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"7bce98af-5267-4ca6-a08c-0c8f2bef5afb\",\"summary\":[\"Gear effect is the term used to explain how and why hitting the ball off-center changes the ball flight.\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to adjust the pressure on the clubhead.</p>\\n\",\"<p>Gear effect is the term used to explain how and why it is imprtant to ride your bike to the course.</p>\\n\"],\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"3b954191-ad43-452c-95c3-868047eb55be\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"pause\":false,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"}},\"label\":\"\"},{\"x\":46.87499999999999,\"y\":44.44444444444444,\"width\":10,\"height\":10,\"duration\":{\"from\":145.688,\"to\":155.688},\"libraryTitle\":\"Multiple Choice\",\"action\":{\"library\":\"H5P.MultiChoice 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"answers\":[{\"correct\":true,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the right, causing a fade&nbsp; slice curved flight.</div>\\n\"},{\"correct\":false,\"tipsAndFeedback\":{\"tip\":\"\",\"chosenFeedback\":\"\",\"notChosenFeedback\":\"\"},\"text\":\"<div>This pushes the ball to the left, causing a <strong>slice</strong> curved flight.</div>\\n\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"type\":\"auto\",\"singlePoint\":false,\"randomAnswers\":true,\"showSolutionsRequiresInput\":true,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"autoCheck\":false,\"passPercentage\":100,\"showScorePoints\":true},\"UI\":{\"checkAnswerButton\":\"Check\",\"showSolutionButton\":\"Show solution\",\"tryAgainButton\":\"Retry\",\"tipsLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"tipAvailable\":\"Tip available\",\"feedbackAvailable\":\"Feedback available\",\"readFeedback\":\"Read feedback\",\"wrongAnswer\":\"Wrong answer\",\"correctAnswer\":\"Correct answer\",\"shouldCheck\":\"Should have been checked\",\"shouldNotCheck\":\"Should not have been checked\",\"noInput\":\"Please answer before viewing the solution\"},\"confirmCheck\":{\"header\":\"Finish ?\",\"body\":\"Are you sure you wish to finish ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Finish\"},\"confirmRetry\":{\"header\":\"Retry ?\",\"body\":\"Are you sure you wish to retry ?\",\"cancelLabel\":\"Cancel\",\"confirmLabel\":\"Confirm\"},\"question\":\"<p>When a ball is spinning&nbsp;in a clockwise&nbsp;direction, there is high pressure on the left hand side of the ball, and low pressure on the right.</p>\\n\"},\"subContentId\":\"df5e99b0-6513-4aa9-a760-e3d9e2bfefe9\",\"metadata\":{\"contentType\":\"Multiple Choice\",\"license\":\"U\",\"title\":\"Untitled Multiple Choice\"}},\"pause\":true,\"displayType\":\"button\",\"buttonOnMobile\":false,\"adaptivity\":{\"correct\":{\"allowOptOut\":false,\"message\":\"\"},\"wrong\":{\"allowOptOut\":false,\"message\":\"\"},\"requireCompletion\":false},\"label\":\"\"}],\"endscreens\":[{\"time\":358,\"label\":\"5:58 Submit screen\"}]},\"summary\":{\"task\":{\"library\":\"H5P.Summary 1.10\",\"params\":{\"intro\":\"Choose the correct statement.\",\"summaries\":[{\"subContentId\":\"64506cb8-ea40-4c72-8c98-ed0bb3c3b808\",\"tip\":\"\"}],\"overallFeedback\":[{\"from\":0,\"to\":100}],\"solvedLabel\":\"Progress:\",\"scoreLabel\":\"Wrong answers:\",\"resultLabel\":\"Your result\",\"labelCorrect\":\"Correct.\",\"labelIncorrect\":\"Incorrect! Please try again.\",\"alternativeIncorrectLabel\":\"Incorrect\",\"labelCorrectAnswers\":\"Correct answers.\",\"tipButtonLabel\":\"Show tip\",\"scoreBarLabel\":\"You got :num out of :total points\",\"progressText\":\"Progress :num of :total\"},\"subContentId\":\"b8eb5a4d-5e2e-4b74-95f5-ca37d1a45186\",\"metadata\":{\"contentType\":\"Summary\",\"license\":\"U\",\"title\":\"Untitled Summary\"}},\"displayAt\":3}},\"override\":{\"autoplay\":true,\"loop\":false,\"showBookmarksmenuOnLoad\":false,\"showRewind10\":false,\"preventSkipping\":false,\"deactivateSound\":false,\"startVideoAt\":37},\"l10n\":{\"interaction\":\"Interaction\",\"play\":\"Play\",\"pause\":\"Pause\",\"mute\":\"Mute\",\"unmute\":\"Unmute\",\"quality\":\"Video Quality\",\"captions\":\"Captions\",\"close\":\"Close\",\"fullscreen\":\"Fullscreen\",\"exitFullscreen\":\"Exit Fullscreen\",\"summary\":\"Open summary dialog\",\"bookmarks\":\"Bookmarks\",\"endscreen\":\"Submit screen\",\"defaultAdaptivitySeekLabel\":\"Continue\",\"continueWithVideo\":\"Continue with video\",\"playbackRate\":\"Playback Rate\",\"rewind10\":\"Rewind 10 Seconds\",\"navDisabled\":\"Navigation is disabled\",\"sndDisabled\":\"Sound is disabled\",\"requiresCompletionWarning\":\"You need to answer all the questions correctly before continuing.\",\"back\":\"Back\",\"hours\":\"Hours\",\"minutes\":\"Minutes\",\"seconds\":\"Seconds\",\"currentTime\":\"Current time:\",\"totalTime\":\"Total time:\",\"singleInteractionAnnouncement\":\"Interaction appeared:\",\"multipleInteractionsAnnouncement\":\"Multiple interactions appeared.\",\"videoPausedAnnouncement\":\"Video is paused\",\"content\":\"Content\",\"answered\":\"@answered answered\",\"endcardTitle\":\"@answered Question(s) answered\",\"endcardInformation\":\"You have answered @answered questions, click below to submit your answers.\",\"endcardInformationNoAnswers\":\"You have not answered any questions.\",\"endcardInformationMustHaveAnswer\":\"You have to answer at least one question before you can submit your answers.\",\"endcardSubmitButton\":\"Submit Answers\",\"endcardSubmitMessage\":\"Your answers have been submitted!\",\"endcardTableRowAnswered\":\"Answered questions\",\"endcardTableRowScore\":\"Score\",\"endcardAnsweredScore\":\"answered\",\"endCardTableRowSummaryWithScore\":\"You got @score out of @total points for the @question that appeared after @minutes minutes and @seconds seconds.\",\"endCardTableRowSummaryWithoutScore\":\"You have answered the @question that appeared after @minutes minutes and @seconds seconds.\"}}",
                    "slug": "understanding-gear-effect-equipment-and-tech-18birdies",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 5,
                "playlist_id": 1,
                "title": "The Evolution of the Golf Ball",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 5,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 66,
                    "created_at": "2020-04-30T23:58:44.000000Z",
                    "updated_at": "2020-04-30T23:58:44.000000Z",
                    "user_id": 1,
                    "title": "The Evolution of the Golf Ball",
                    "library_id": 61,
                    "parameters": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png#tmp\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "filtered": "{\"timeline\":{\"defaultZoomLevel\":\"0\",\"height\":600,\"asset\":{},\"date\":[{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab648fb61c9.jpeg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":234,\"height\":216}},\"startDate\":\"1400\",\"endDate\":\"2020\",\"headline\":\"Origins of Golf\",\"text\":\"<p>Golf is recorded in its first recognizable form in the Eastern Coast of Scotland.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab64e26de00.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":222}},\"startDate\":\"1600\",\"headline\":\"Wood Golf Balls\",\"text\":\"<p>The first known golf ball was made out of wood, most likely beech, boxroot and similar hardwoods. Wooden clubs were the golf club of choice, which in conjunction with the wood balls would have made your friendly game of golf a rather jarring experience.</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab652f19393.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":1128,\"height\":1096}},\"startDate\":\"1618\",\"headline\":\"Feathery Golf Balls\",\"text\":\"<p>The first \\\"real\\\" golf ball was known as a \\\"feathery\\\"golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. Feathery golf balls were expensive to make easily damaged and only the privileged few could afford to use them.&nbsp;</p>\\n\\n<p>It was made of cow or horsehide which was stuffed with feathers; most often goose feather. The leather, in order to be easier to work with, was soaked in water. The feathers that were forced into the ball by using a specially designed crutch-handled filling rod were soaked as well.&nbsp;</p>\\n\\n<p>After the ball was carefully hand sewn together, it was left to dry. While the leather shrank, the feathers expanded, which made the ball very hard and compact.&nbsp;</p>\\n\\n<p>Interestingly, the featherie also had excellent flight characteristics as it could reach a distance of up to 175 yards; although the longest recorded distance is more than 361 yards.<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab658fa6bde.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1350,\"height\":759},\"media\":\"https://images.app.goo.gl/MFHFL1dtDiyR5nGq7\"},\"startDate\":\"1848\",\"headline\":\"Cost of Golf Balls\",\"text\":\"<p>In the mid-19th century, most people could only dream of playing golf. There were at the time fewer than 20 golf clubs around the world, with just three being outside Scotland. But that was not the only thing that prevented most people from playing golf. The high cost of golf essentials, especially of golf balls, made the game pretty much inaccessible to ordinary people.31 But that was soon about to change...<br>\\n&nbsp;</p>\\n\"},{\"asset\":{\"thumbnail\":{\"path\":\"images/thumbnail-5eab65cbe1adb.png\",\"mime\":\"image/png\",\"copyright\":{\"license\":\"U\"},\"width\":944,\"height\":890}},\"startDate\":\"1848\",\"endDate\":\"1890\",\"headline\":\"Gutty Golf Balls\",\"text\":\"<p>It wasn't until 1848 that Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha \\\"Gutty\\\". The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot.&nbsp;</p>\\n\\n<p>The arrival of the gutta percha ball or \\\"gutty\\\", as it was called, revolutionized the game of golf and allowed its spread to the masses due to its affordability, playability and durability.</p>\\n\"},{\"asset\":{},\"startDate\":\"1899\",\"headline\":\"Hand Hammered Gutta Ball\",\"text\":\"<p>American businessman and inventor Coburn Haskell (1868-1922) got a (joint) patent from the United States Patent Office for the rubber-wound ball47 which would soon lead to another revolution in golf. Widely regarded as the first modern golf ball, Haskell\\u2019s ball was made of a solid rubber-wound core that was covered by guttapercha.</p>\\n\"}],\"language\":\"en\",\"headline\":\"The Evolution of the Golf Ball\",\"text\":\"<div>A golf ball is central to the game of golf. In fact, golf is all about the ball. Well, getting it into the hole in the ground!</div>\\n\",\"backgroundImage\":{\"path\":\"images/backgroundImage-5eab633e2e935.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":2139,\"height\":1179}}}",
                    "slug": "the-evolution-of-the-golf-ball",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            },
            {
                "id": 7,
                "playlist_id": 1,
                "title": "Famous Golf Holes",
                "type": "h5p",
                "content": "",
                "shared": false,
                "order": 6,
                "thumb_url": null,
                "subject_id": null,
                "education_level_id": null,
                "h5p_content": {
                    "id": 76,
                    "created_at": "2020-05-01T05:20:54.000000Z",
                    "updated_at": "2020-05-01T05:20:54.000000Z",
                    "user_id": 1,
                    "title": "Famous Golf Holes",
                    "library_id": 60,
                    "parameters": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg#tmp\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "filtered": "{\"cards\":[{\"answer\":\"7th Hole at Pebble Beach\",\"image\":{\"path\":\"images/image-5eabad2e71b62.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":991,\"height\":500},\"tip\":\"<p>Mickey Mantle<br>\\nAT&amp;T Pro Am</p>\\n\"},{\"answer\":\"12th hole at Augusta National\",\"image\":{\"path\":\"images/image-5eabae675c197.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":847,\"height\":467},\"tip\":\"\"},{\"answer\":\"7th hole at TPC Sawgrass\",\"image\":{\"path\":\"images/image-5eabaec199254.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1024,\"height\":570},\"tip\":\"\"},{\"answer\":\"The Old Course at St Andrews,  #18\",\"image\":{\"path\":\"images/image-5eabafb2400f7.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":475,\"height\":367},\"tip\":\"\"},{\"answer\":\"Pine Valley Golf Club, #18\",\"image\":{\"path\":\"images/image-5eabb0ced23c3.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":960,\"height\":640},\"tip\":\"\"},{\"answer\":\"Celebrity Course - Indian Wells Golf Resort, #14\",\"image\":{\"path\":\"images/image-5eabb17c9a715.jpg\",\"mime\":\"image/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":780,\"height\":490},\"tip\":\"\"}],\"progressText\":\"Card @card of @total\",\"next\":\"Next\",\"previous\":\"Previous\",\"checkAnswerText\":\"Check\",\"showSolutionsRequiresInput\":true,\"defaultAnswerText\":\"Your answer\",\"correctAnswerText\":\"Correct\",\"incorrectAnswerText\":\"Incorrect\",\"showSolutionText\":\"Correct answer\",\"results\":\"Results\",\"ofCorrect\":\"@score of @total correct\",\"showResults\":\"Show results\",\"answerShortText\":\"A:\",\"retry\":\"Retry\",\"caseSensitive\":false,\"cardAnnouncement\":\"Incorrect answer. Correct answer was @answer\",\"pageAnnouncement\":\"Page @current of @total\",\"description\":\"Match the Hole with the Course\"}",
                    "slug": "famous-golf-holes",
                    "embed_type": "div",
                    "disable": 9,
                    "content_type": null,
                    "authors": null,
                    "source": null,
                    "year_from": null,
                    "year_to": null,
                    "license": "U",
                    "license_version": null,
                    "license_extras": null,
                    "author_comments": null,
                    "changes": null,
                    "default_language": null
                },
                "is_public": false,
                "created_at": null,
                "updated_at": null
            }
        ],
        "created_at": null,
        "updated_at": null
    }
}
 

Request      

GET api/v1/brightcove/{videoId}/h5p-resource-settings

URL Parameters

videoId  string  

For brightcove video

Get Kaltura media entries list

Use Kaltura Session to get the api token. Using inside H5p Curriki Interactive Video

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/kaltura/get-media-entry-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"pageSize\": \"10\",
    \"pageIndex\": \"0 on first page or 10 on next page and so on\",
    \"searchText\": \"1_4mmw1lb3 or KalturaWebcasting\",
    \"organization_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/kaltura/get-media-entry-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "pageSize": "10",
    "pageIndex": "0 on first page or 10 on next page and so on",
    "searchText": "1_4mmw1lb3 or KalturaWebcasting",
    "organization_id": "1"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/kaltura/get-media-entry-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'pageSize' => '10',
            'pageIndex' => '0 on first page or 10 on next page and so on',
            'searchText' => '1_4mmw1lb3 or KalturaWebcasting',
            'organization_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Unable to find Kaltura API settings!"
    ]
}
 

Example response (200):


{
    "objects": [
        {
            "mediaType": 1,
            "conversionQuality": "9569961",
            "sourceType": "35",
            "sourceVersion": null,
            "searchProviderType": null,
            "searchProviderId": null,
            "creditUserName": null,
            "creditUrl": null,
            "mediaDate": null,
            "dataUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_4mmw1lb3/format/url/protocol/https",
            "flavorParamsIds": "0,487041,487051,487061,487071,487081,487091",
            "isTrimDisabled": null,
            "streams": null,
            "plays": 0,
            "views": 0,
            "lastPlayedAt": null,
            "width": null,
            "height": null,
            "duration": 85,
            "msDuration": 85000,
            "durationType": null,
            "id": "1_4mmw1lb3",
            "name": "Kaltura Webcasting Overview",
            "description": "With Kaltura Webcasting, refocus webcasting on the user experience. Innovative design helps presenters shine, producers relax, and participants engage.",
            "partnerId": 4515783,
            "userId": "ranaasimsrwr365@gmail.com",
            "creatorId": "ranaasimsrwr365@gmail.com",
            "tags": "webcasting, live event, video solutions",
            "adminTags": null,
            "categories": "MediaSpace>site>galleries>Pleased to Meet You>Products>Webcasting",
            "categoriesIds": "249032893",
            "status": "2",
            "moderationStatus": 6,
            "moderationCount": 0,
            "type": "1",
            "createdAt": 1645693678,
            "updatedAt": 1651131462,
            "rank": 0,
            "totalRank": 0,
            "votes": 0,
            "groupId": null,
            "partnerData": null,
            "downloadUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_4mmw1lb3/format/download/protocol/https/flavorParamIds/0",
            "searchText": "_PAR_ONLY_ _4515783_ _MEDIA_TYPE_1|  Kaltura Webcasting Overview webcasting, live event, video solutions With Kaltura Webcasting, refocus webcasting on the user experience. Innovative design helps presenters shine, producers relax, and participants engage. ",
            "licenseType": -1,
            "version": 0,
            "thumbnailUrl": "https://cfvod.kaltura.com/p/4515783/sp/451578300/thumbnail/entry_id/1_4mmw1lb3/version/100001",
            "accessControlId": 5527103,
            "startDate": null,
            "endDate": null,
            "referenceId": null,
            "replacingEntryId": null,
            "replacedEntryId": null,
            "replacementStatus": "0",
            "partnerSortValue": 0,
            "conversionProfileId": 9569961,
            "redirectEntryId": null,
            "rootEntryId": "0_5vsq9gqo",
            "parentEntryId": null,
            "operationAttributes": [],
            "entitledUsersEdit": "",
            "entitledUsersPublish": "",
            "entitledUsersView": "",
            "capabilities": "",
            "templateEntryId": null,
            "displayInSearch": 1,
            "application": null,
            "applicationVersion": null,
            "blockAutoTranscript": false
        },
        {
            "mediaType": 1,
            "conversionQuality": "9569961",
            "sourceType": "35",
            "sourceVersion": null,
            "searchProviderType": null,
            "searchProviderId": null,
            "creditUserName": null,
            "creditUrl": null,
            "mediaDate": null,
            "dataUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_5cj84aa0/format/url/protocol/https",
            "flavorParamsIds": "0,487041,487051,487061,487071,487091",
            "isTrimDisabled": null,
            "streams": null,
            "plays": 0,
            "views": 0,
            "lastPlayedAt": null,
            "width": null,
            "height": null,
            "duration": 121,
            "msDuration": 121000,
            "durationType": null,
            "id": "1_5cj84aa0",
            "name": "Video Solutions for Learning and Development",
            "description": "Kaltura delivers learning and training to wherever employees are with our advanced video solutions for learning and development.",
            "partnerId": 4515783,
            "userId": "ranaasimsrwr365@gmail.com",
            "creatorId": "ranaasimsrwr365@gmail.com",
            "tags": "learning and development, corporate training",
            "adminTags": null,
            "categories": "MediaSpace>site>galleries>Pleased to Meet You>Video Use Cases",
            "categoriesIds": "249032853",
            "status": "2",
            "moderationStatus": 6,
            "moderationCount": 0,
            "type": "1",
            "createdAt": 1645693683,
            "updatedAt": 1651131459,
            "rank": 0,
            "totalRank": 0,
            "votes": 0,
            "groupId": null,
            "partnerData": null,
            "downloadUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_5cj84aa0/format/download/protocol/https/flavorParamIds/0",
            "searchText": "_PAR_ONLY_ _4515783_ _MEDIA_TYPE_1|  Video Solutions for Learning and Development learning and development, corporate training Kaltura delivers learning and training to wherever employees are with our advanced video solutions for learning and development. ",
            "licenseType": -1,
            "version": 0,
            "thumbnailUrl": "https://cfvod.kaltura.com/p/4515783/sp/451578300/thumbnail/entry_id/1_5cj84aa0/version/100011",
            "accessControlId": 5527103,
            "startDate": null,
            "endDate": null,
            "referenceId": null,
            "replacingEntryId": null,
            "replacedEntryId": null,
            "replacementStatus": "0",
            "partnerSortValue": 0,
            "conversionProfileId": 9569961,
            "redirectEntryId": null,
            "rootEntryId": "0_bhk14hk5",
            "parentEntryId": null,
            "operationAttributes": [],
            "entitledUsersEdit": "",
            "entitledUsersPublish": "",
            "entitledUsersView": "",
            "capabilities": "",
            "templateEntryId": null,
            "displayInSearch": 1,
            "application": null,
            "applicationVersion": null,
            "blockAutoTranscript": false
        },
        {
            "mediaType": 1,
            "conversionQuality": "8053211",
            "sourceType": "35",
            "sourceVersion": null,
            "searchProviderType": null,
            "searchProviderId": null,
            "creditUserName": null,
            "creditUrl": null,
            "mediaDate": null,
            "dataUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_bn0hb7i9/format/url/protocol/https",
            "flavorParamsIds": "0,487041,487051,487061,487071,487081,487091",
            "isTrimDisabled": null,
            "streams": null,
            "plays": 0,
            "views": 0,
            "lastPlayedAt": null,
            "width": null,
            "height": null,
            "duration": 199,
            "msDuration": 199000,
            "durationType": null,
            "id": "1_bn0hb7i9",
            "name": "Tips & Tricks for Better Videos - Chapter 3 - Recording Audio",
            "description": "In this video we cover how to get the best quality audio. Which mics to use, that aren't too expensive, how to leverage music and more.",
            "partnerId": 4515783,
            "userId": "ranaasimsrwr365@gmail.com",
            "creatorId": "ranaasimsrwr365@gmail.com",
            "tags": "musical recordings, telephone, household appliances and consumer electronics, electromechanical device, caption complete, microphone, consumer electronic and optical products, music, video tips, electronics & manufacture of computer, video solutions, sound reproduction, electrical mechanics, laptops, effects, entertainment industry, training videos, video tutorials, artistic expressions and media, audio devices, video training, audio, music industry",
            "adminTags": "",
            "categories": "Samples>Sample Videos,MediaSpace>site>galleries>Creating the Perfect Video,MediaSpace>site>channels>Employee Engagement",
            "categoriesIds": "249032713,249032823,249032843",
            "status": "2",
            "moderationStatus": 6,
            "moderationCount": 0,
            "type": "1",
            "createdAt": 1645693675,
            "updatedAt": 1651131463,
            "rank": 0,
            "totalRank": 0,
            "votes": 0,
            "groupId": null,
            "partnerData": null,
            "downloadUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_bn0hb7i9/format/download/protocol/https/flavorParamIds/0",
            "searchText": "_PAR_ONLY_ _4515783_ _MEDIA_TYPE_1|  Tips & Tricks for Better Videos - Chapter 3 - Recording Audio musical recordings, telephone, household appliances and consumer electronics, electromechanical device, caption complete, microphone, consumer electronic and optical products, music, video tips, electronics & manufacture of computer, video solutions, sound reproduction, electrical mechanics, laptops, effects, entertainment industry, training videos, video tutorials, artistic expressions and media, audio devices, video training, audio, music industry In this video we cover how to get the best quality audio. Which mics to use, that arent too expensive, how to leverage music and more. ",
            "licenseType": -1,
            "version": 0,
            "thumbnailUrl": "https://cfvod.kaltura.com/p/4515783/sp/451578300/thumbnail/entry_id/1_bn0hb7i9/version/100011",
            "accessControlId": 5527103,
            "startDate": null,
            "endDate": null,
            "referenceId": null,
            "replacingEntryId": null,
            "replacedEntryId": null,
            "replacementStatus": "0",
            "partnerSortValue": 25,
            "conversionProfileId": 8053211,
            "redirectEntryId": null,
            "rootEntryId": "0_5eej5a3i",
            "parentEntryId": null,
            "operationAttributes": [],
            "entitledUsersEdit": "",
            "entitledUsersPublish": "",
            "entitledUsersView": "",
            "capabilities": "",
            "templateEntryId": null,
            "displayInSearch": 1,
            "application": null,
            "applicationVersion": null,
            "blockAutoTranscript": false
        },
        {
            "mediaType": 1,
            "conversionQuality": "9569961",
            "sourceType": "35",
            "sourceVersion": null,
            "searchProviderType": null,
            "searchProviderId": null,
            "creditUserName": null,
            "creditUrl": null,
            "mediaDate": null,
            "dataUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_cald90pl/format/url/protocol/https",
            "flavorParamsIds": "0,487041,487051,487061,487071,487091",
            "isTrimDisabled": null,
            "streams": null,
            "plays": 0,
            "views": 0,
            "lastPlayedAt": null,
            "width": null,
            "height": null,
            "duration": 136,
            "msDuration": 136000,
            "durationType": null,
            "id": "1_cald90pl",
            "name": "Hello, Watch Me First!",
            "description": "A short video intro to get you started on your free trial.",
            "partnerId": 4515783,
            "userId": "ranaasimsrwr365@gmail.com",
            "creatorId": "ranaasimsrwr365@gmail.com",
            "tags": "free trial, welcome, get started",
            "adminTags": "default_playlist",
            "categories": "MediaSpace>site>galleries>Pleased to Meet You",
            "categoriesIds": "249032813",
            "status": "2",
            "moderationStatus": 6,
            "moderationCount": 0,
            "type": "1",
            "createdAt": 1645693674,
            "updatedAt": 1651131461,
            "rank": 0,
            "totalRank": 0,
            "votes": 0,
            "groupId": null,
            "partnerData": null,
            "downloadUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_cald90pl/format/download/protocol/https/flavorParamIds/0",
            "searchText": "_PAR_ONLY_ _4515783_ _MEDIA_TYPE_1|  Hello, Watch Me First! free trial, welcome, get started A short video intro to get you started on your free trial. default_playlist",
            "licenseType": -1,
            "version": 0,
            "thumbnailUrl": "https://cfvod.kaltura.com/p/4515783/sp/451578300/thumbnail/entry_id/1_cald90pl/version/100011",
            "accessControlId": 5527103,
            "startDate": null,
            "endDate": null,
            "referenceId": null,
            "replacingEntryId": null,
            "replacedEntryId": null,
            "replacementStatus": "0",
            "partnerSortValue": 30,
            "conversionProfileId": 9569961,
            "redirectEntryId": null,
            "rootEntryId": "0_4esg1tux",
            "parentEntryId": null,
            "operationAttributes": [],
            "entitledUsersEdit": "",
            "entitledUsersPublish": "",
            "entitledUsersView": "",
            "capabilities": "",
            "templateEntryId": null,
            "displayInSearch": 1,
            "application": null,
            "applicationVersion": null,
            "blockAutoTranscript": false
        },
        {
            "mediaType": 1,
            "conversionQuality": "8053211",
            "sourceType": "35",
            "sourceVersion": null,
            "searchProviderType": null,
            "searchProviderId": null,
            "creditUserName": null,
            "creditUrl": null,
            "mediaDate": null,
            "dataUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_ffyypgpa/format/url/protocol/https",
            "flavorParamsIds": "0,487041,487051,487061,487071,487081,487091",
            "isTrimDisabled": null,
            "streams": null,
            "plays": 0,
            "views": 0,
            "lastPlayedAt": null,
            "width": null,
            "height": null,
            "duration": 198,
            "msDuration": 198000,
            "durationType": null,
            "id": "1_ffyypgpa",
            "name": "Tips & Tricks for Better Videos - Chapter 1 - Preparation",
            "description": "Learn how to prepare for creating your own video content. We cover preparing your script, how to position your camera, and even what or what not to wear.",
            "partnerId": 4515783,
            "userId": "ranaasimsrwr365@gmail.com",
            "creatorId": "ranaasimsrwr365@gmail.com",
            "tags": "jewellery, telephone, caption complete, cameras, music, video tips, telecommunications equipment, electronical devices, video solutions, web camera, bracelet (jewelry), photography, effects, photography products and equipment, training videos, computer camera, video tutorials, artistic expressions and media, computers, computer accessories, information technology supplies, video training",
            "adminTags": "",
            "categories": "Samples>Sample Videos,MediaSpace>site>galleries>Creating the Perfect Video,MediaSpace>site>channels>Employee Engagement",
            "categoriesIds": "249032713,249032823,249032843",
            "status": "2",
            "moderationStatus": 6,
            "moderationCount": 0,
            "type": "1",
            "createdAt": 1645693680,
            "updatedAt": 1651131463,
            "rank": 0,
            "totalRank": 0,
            "votes": 0,
            "groupId": null,
            "partnerData": null,
            "downloadUrl": "https://cdnapisec.kaltura.com/p/4515783/sp/451578300/playManifest/entryId/1_ffyypgpa/format/download/protocol/https/flavorParamIds/0",
            "searchText": "_PAR_ONLY_ _4515783_ _MEDIA_TYPE_1|  Tips & Tricks for Better Videos - Chapter 1 - Preparation jewellery, telephone, caption complete, cameras, music, video tips, telecommunications equipment, electronical devices, video solutions, web camera, bracelet (jewelry), photography, effects, photography products and equipment, training videos, computer camera, video tutorials, artistic expressions and media, computers, computer accessories, information technology supplies, video training Learn how to prepare for creating your own video content. We cover preparing your script, how to position your camera, and even what or what not to wear. ",
            "licenseType": -1,
            "version": 0,
            "thumbnailUrl": "https://cfvod.kaltura.com/p/4515783/sp/451578300/thumbnail/entry_id/1_ffyypgpa/version/100011",
            "accessControlId": 5527103,
            "startDate": null,
            "endDate": null,
            "referenceId": null,
            "replacingEntryId": null,
            "replacedEntryId": null,
            "replacementStatus": "0",
            "partnerSortValue": 35,
            "conversionProfileId": 8053211,
            "redirectEntryId": null,
            "rootEntryId": "0_adse5iqv",
            "parentEntryId": null,
            "operationAttributes": [],
            "entitledUsersEdit": "",
            "entitledUsersPublish": "",
            "entitledUsersView": "",
            "capabilities": "",
            "templateEntryId": null,
            "displayInSearch": 1,
            "application": null,
            "applicationVersion": null,
            "blockAutoTranscript": false
        }
    ],
    "totalCount": 14
}
 

Request      

POST api/v1/kaltura/get-media-entry-list

Body Parameters

pageSize  required optional  

string Mean record per page

pageIndex  required optional  

string Mean skip record per page

searchText  string optional  

Mean search record by video title or video id

organization_id  required optional  

int The Id of a suborganization

Get My Vimeo Videos List

Get the specified Vimeo API setting data. Using inside H5p Curriki Interactive Video

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/vimeo/get-my-video-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": \"1\",
    \"per_page\": \"10\",
    \"query\": \"696855454 or Wildlife Windows\",
    \"organization_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/vimeo/get-my-video-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": "1",
    "per_page": "10",
    "query": "696855454 or Wildlife Windows",
    "organization_id": "1"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/vimeo/get-my-video-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => '1',
            'per_page' => '10',
            'query' => '696855454 or Wildlife Windows',
            'organization_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Unable to find Vimeo API settings!"
    ]
}
 

Example response (200):


{
    "total": 14,
    "page": 1,
    "per_page": 10,
    "paging": {
        "next": "/me/videos?page=2&per_page=10",
        "previous": null,
        "first": "/me/videos?page=1&per_page=10",
        "last": "/me/videos?page=2&per_page=10"
    },
    "data": [
        {
            "uri": "/videos/696855454",
            "name": "Wildlife Windows 7 Sample Video.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696855454",
            "player_embed_url": "https://player.vimeo.com/video/696855454?h=54484e455f",
            "duration": 30,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696855454?h=54484e455f&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Wildlife Windows 7 Sample Video.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T07:09:16+00:00",
            "modified_time": "2022-05-24T10:30:22+00:00",
            "release_time": "2022-04-07T07:09:16+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696855454/pictures/1409497762",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409497762-5a97be163b69d9ef3cde0cc641124e1b88875b7775699ff06ce485cb4c6b0a36-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "451234da6cfb1f9171c0272bc443d4aac9ee881c",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696855454/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696855454/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696855454/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696855454/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696855454/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=1",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696855454/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696855454/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "87d17a80bcbefb541d812c1051f7199b7a332112",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696854832",
            "name": "Demo Background Sample Video.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696854832",
            "player_embed_url": "https://player.vimeo.com/video/696854832?h=34771793de",
            "duration": 18,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696854832?h=34771793de&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Demo Background Sample Video.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T07:07:05+00:00",
            "modified_time": "2022-04-07T07:07:45+00:00",
            "release_time": "2022-04-07T07:07:05+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696854832/pictures/1409496070",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496070-368a0c9c98e22b6d88b487cb55756c15a0fc205a035c8d2a4ed535651414ca6b-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "10bdc27d80250e07a931d93ea00bc0409aceb420",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696854832/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696854832/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696854832/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696854832/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696854832/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=2",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696854832/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696854832/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "42defb8b69b9e9ad13055ccd3c05b009a3880453",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696854597",
            "name": "Nikon D5600_ Sample Video.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696854597",
            "player_embed_url": "https://player.vimeo.com/video/696854597?h=8ddb73adca",
            "duration": 99,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696854597?h=8ddb73adca&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Nikon D5600_ Sample Video.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T07:06:14+00:00",
            "modified_time": "2022-05-24T03:54:17+00:00",
            "release_time": "2022-04-07T07:06:14+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696854597/pictures/1409496822",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409496822-9c834fd1a42da930507f90994e898b470c0a29e329fb09371ca243c9926b4e93-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "12a97c4f18955b1e1d5109494dacb3e2f47f9b93",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696854597/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696854597/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696854597/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696854597/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696854597/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=3",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696854597/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696854597/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "486dea59ecbe945f286dd6e811745a3739aa3a54",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696851355",
            "name": "Particle RSG Logo 3 Cameras Final.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696851355",
            "player_embed_url": "https://player.vimeo.com/video/696851355?h=a834757bbb",
            "duration": 30,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696851355?h=a834757bbb&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Particle RSG Logo 3 Cameras Final.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:53:53+00:00",
            "modified_time": "2022-04-07T06:57:33+00:00",
            "release_time": "2022-04-07T06:53:53+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696851355/pictures/1409490735",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409490735-73bed05c23b232d64c7a3366f3d49d09608c03671cdbdf3a5a9d172f41c4945d-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "74b9d6aeebbe64390f903ff130349667fb9b41bf",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696851355/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696851355/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696851355/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696851355/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696851355/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=4",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696851355/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696851355/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "5aa2291817e202e3a6081ea35482705c5bcdd0d0",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696850169",
            "name": "Free Particle Wave Background Abstract Stock Footage.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696850169",
            "player_embed_url": "https://player.vimeo.com/video/696850169?h=bb829ce334",
            "duration": 8,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696850169?h=bb829ce334&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Free Particle Wave Background Abstract Stock Footage.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:48:48+00:00",
            "modified_time": "2022-08-28T00:44:06+00:00",
            "release_time": "2022-04-07T06:48:48+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696850169/pictures/1409488353",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488353-da252fe02968c04272f470b1b3460614aaaa83e9d90d11a2d67461b9f2644112-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "c21d286c64ecdb89bbbe4301990e6323e7b899dc",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696850169/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696850169/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696850169/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696850169/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696850169/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=5",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696850169/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696850169/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "dba3d97b463823b56007541234257cf284fe5268",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696850162",
            "name": "Premiere pro Smoke intro (channel).mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696850162",
            "player_embed_url": "https://player.vimeo.com/video/696850162?h=034bb7e276",
            "duration": 9,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696850162?h=034bb7e276&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Premiere pro Smoke intro (channel).mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:48:44+00:00",
            "modified_time": "2022-04-07T06:52:31+00:00",
            "release_time": "2022-04-07T06:48:44+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696850162/pictures/1409488381",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409488381-d1a3f58bcb98343ba27677584a5821ee7b47005caaf4a5c9d6e83bd34af3e5dd-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "ba4e06a08f0cd8e83627a5f8fe94dd0aed74257d",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696850162/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696850162/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696850162/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696850162/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696850162/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=6",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696850162/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696850162/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "2fd71bf34351fd9fd3a02c5437d724f1683dad58",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696849247",
            "name": "Line Overlay.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696849247",
            "player_embed_url": "https://player.vimeo.com/video/696849247?h=ac0cb5730b",
            "duration": 17,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696849247?h=ac0cb5730b&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Line Overlay.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:44:35+00:00",
            "modified_time": "2022-04-07T06:48:11+00:00",
            "release_time": "2022-04-07T06:44:35+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696849247/pictures/1409486914",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409486914-4bbe465e338670520c33809a2af027975a816cc2348f9ec95ee9d3a518a19658-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "e434bbf7514f619adf394f2c4612d196ac3a21d5",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696849247/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696849247/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696849247/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696849247/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696849247/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=7",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696849247/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696849247/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "af2ee02d9cd29f509910c5b2b2b906c6813e328a",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696848018",
            "name": "Plexus Lines Background.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696848018",
            "player_embed_url": "https://player.vimeo.com/video/696848018?h=8fbb383fdd",
            "duration": 20,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696848018?h=8fbb383fdd&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"Plexus Lines Background.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:38:41+00:00",
            "modified_time": "2022-04-07T06:41:53+00:00",
            "release_time": "2022-04-07T06:38:41+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696848018/pictures/1409484982",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409484982-e382a8324b82269cec882d89e66dcc88341e007d299091bba582d2f60f74912c-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "439d2a45397869f8818073e5712bbe81b2eb7f50",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696848018/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696848018/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696848018/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696848018/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696848018/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=8",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696848018/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696848018/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "df5188a8fa1bd6319687dd813f04c70686c5d457",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696847412",
            "name": "COLOR PARTICULAR.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696847412",
            "player_embed_url": "https://player.vimeo.com/video/696847412?h=c14ce395bf",
            "duration": 20,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696847412?h=c14ce395bf&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"COLOR PARTICULAR.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-07T06:35:51+00:00",
            "modified_time": "2022-04-07T06:37:13+00:00",
            "release_time": "2022-04-07T06:35:51+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696847412/pictures/1409482879",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1409482879-8a075ff8394054113ad4a17d2f29e1e07916fb0d46fcd6800f7e80bf98216a76-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "d93289262c905eca36f7ac9fc70777c4988cf59c",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696847412/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696847412/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696847412/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696847412/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696847412/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=9",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696847412/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696847412/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "a35ca99a3b86c4966ade2fff2ba215882a0c3026",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        },
        {
            "uri": "/videos/696518977",
            "name": "PARTICULAR STARS.mp4",
            "description": null,
            "type": "video",
            "link": "https://vimeo.com/696518977",
            "player_embed_url": "https://player.vimeo.com/video/696518977?h=a832c5d817",
            "duration": 20,
            "width": 1280,
            "language": null,
            "height": 720,
            "embed": {
                "html": "<iframe src=\"https://player.vimeo.com/video/696518977?h=a832c5d817&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=246316\" width=\"1280\" height=\"720\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen title=\"PARTICULAR STARS.mp4\"></iframe>",
                "badges": {
                    "hdr": false,
                    "live": {
                        "streaming": false,
                        "archived": false
                    },
                    "staff_pick": {
                        "normal": false,
                        "best_of_the_month": false,
                        "best_of_the_year": false,
                        "premiere": false
                    },
                    "vod": false,
                    "weekend_challenge": false
                }
            },
            "created_time": "2022-04-06T12:25:45+00:00",
            "modified_time": "2022-10-11T12:10:43+00:00",
            "release_time": "2022-04-06T12:25:45+00:00",
            "content_rating": [
                "unrated"
            ],
            "content_rating_class": "unrated",
            "rating_mod_locked": false,
            "license": null,
            "privacy": {
                "view": "anybody",
                "embed": "public",
                "download": false,
                "add": true,
                "comments": "anybody"
            },
            "pictures": {
                "uri": "/videos/696518977/pictures/1408757138",
                "active": true,
                "type": "custom",
                "base_link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d",
                "sizes": [
                    {
                        "width": 100,
                        "height": 75,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_100x75?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_100x75&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 200,
                        "height": 150,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_200x150?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_200x150&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 295,
                        "height": 166,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_295x166?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_295x166&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 640,
                        "height": 360,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_640x360?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_640x360&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 960,
                        "height": 540,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_960x540?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_960x540&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1280,
                        "height": 720,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_1280x720?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    },
                    {
                        "width": 1920,
                        "height": 1080,
                        "link": "https://i.vimeocdn.com/video/1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_1920x1080?r=pad",
                        "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1408757138-ea19c524b39727bb02e5ef250707fcd3db27eb97492bc09e5468b9bab17c0f18-d_1920x1080&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png"
                    }
                ],
                "resource_key": "78dce6076f7c43ea0657d38b740e483b86a091a1",
                "default_picture": false
            },
            "tags": [],
            "stats": {
                "plays": null
            },
            "categories": [],
            "uploader": {
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                }
            },
            "metadata": {
                "connections": {
                    "comments": {
                        "uri": "/videos/696518977/comments",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "credits": {
                        "uri": "/videos/696518977/credits",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "likes": {
                        "uri": "/videos/696518977/likes",
                        "options": [
                            "GET"
                        ],
                        "total": 0
                    },
                    "pictures": {
                        "uri": "/videos/696518977/pictures",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 1
                    },
                    "texttracks": {
                        "uri": "/videos/696518977/texttracks",
                        "options": [
                            "GET",
                            "POST"
                        ],
                        "total": 0
                    },
                    "related": {
                        "uri": "/me/videos?page=1&per_page=10&offset=10",
                        "options": [
                            "GET"
                        ]
                    },
                    "recommendations": {
                        "uri": "/videos/696518977/recommendations",
                        "options": [
                            "GET"
                        ]
                    }
                },
                "interactions": {
                    "report": {
                        "uri": "/videos/696518977/report",
                        "options": [
                            "POST"
                        ],
                        "reason": [
                            "pornographic",
                            "harassment",
                            "ripoff",
                            "incorrect rating",
                            "spam",
                            "causes harm",
                            "csam"
                        ]
                    }
                },
                "is_vimeo_create": false,
                "is_screen_record": false
            },
            "user": {
                "uri": "/users/169594686",
                "name": "Asim Sarwar",
                "link": "https://vimeo.com/user169594686",
                "capabilities": {
                    "hasLiveSubscription": false,
                    "hasEnterpriseLihp": false,
                    "hasSvvTimecodedComments": false
                },
                "location": "",
                "gender": "",
                "bio": null,
                "short_bio": null,
                "created_time": "2022-03-15T09:13:35+00:00",
                "pictures": {
                    "uri": "/users/169594686/pictures/69008030",
                    "active": true,
                    "type": "custom",
                    "base_link": "https://i.vimeocdn.com/portrait/69008030",
                    "sizes": [
                        {
                            "width": 30,
                            "height": 30,
                            "link": "https://i.vimeocdn.com/portrait/69008030_30x30"
                        },
                        {
                            "width": 72,
                            "height": 72,
                            "link": "https://i.vimeocdn.com/portrait/69008030_72x72"
                        },
                        {
                            "width": 75,
                            "height": 75,
                            "link": "https://i.vimeocdn.com/portrait/69008030_75x75"
                        },
                        {
                            "width": 100,
                            "height": 100,
                            "link": "https://i.vimeocdn.com/portrait/69008030_100x100"
                        },
                        {
                            "width": 144,
                            "height": 144,
                            "link": "https://i.vimeocdn.com/portrait/69008030_144x144"
                        },
                        {
                            "width": 216,
                            "height": 216,
                            "link": "https://i.vimeocdn.com/portrait/69008030_216x216"
                        },
                        {
                            "width": 288,
                            "height": 288,
                            "link": "https://i.vimeocdn.com/portrait/69008030_288x288"
                        },
                        {
                            "width": 300,
                            "height": 300,
                            "link": "https://i.vimeocdn.com/portrait/69008030_300x300"
                        },
                        {
                            "width": 360,
                            "height": 360,
                            "link": "https://i.vimeocdn.com/portrait/69008030_360x360"
                        }
                    ],
                    "resource_key": "2d541ded34e5594cb359b509b2adbd4c7083f0d9",
                    "default_picture": false
                },
                "websites": [],
                "metadata": {
                    "connections": {
                        "albums": {
                            "uri": "/users/169594686/albums",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "appearances": {
                            "uri": "/users/169594686/appearances",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "channels": {
                            "uri": "/users/169594686/channels",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "feed": {
                            "uri": "/users/169594686/feed",
                            "options": [
                                "GET"
                            ]
                        },
                        "followers": {
                            "uri": "/users/169594686/followers",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "following": {
                            "uri": "/users/169594686/following",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "groups": {
                            "uri": "/users/169594686/groups",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "likes": {
                            "uri": "/users/169594686/likes",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "membership": {
                            "uri": "/users/169594686/membership/",
                            "options": [
                                "PATCH"
                            ]
                        },
                        "moderated_channels": {
                            "uri": "/users/169594686/channels?filter=moderated",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "portfolios": {
                            "uri": "/users/169594686/portfolios",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "videos": {
                            "uri": "/users/169594686/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 14
                        },
                        "shared": {
                            "uri": "/users/169594686/shared/videos",
                            "options": [
                                "GET"
                            ],
                            "total": 0
                        },
                        "pictures": {
                            "uri": "/users/169594686/pictures",
                            "options": [
                                "GET",
                                "POST"
                            ],
                            "total": 1
                        },
                        "folders_root": {
                            "uri": "/users/169594686/folders/root",
                            "options": [
                                "GET"
                            ]
                        },
                        "teams": {
                            "uri": "/users/169594686/teams",
                            "options": [
                                "GET"
                            ],
                            "total": 1
                        }
                    }
                },
                "location_details": {
                    "formatted_address": "",
                    "latitude": null,
                    "longitude": null,
                    "city": null,
                    "state": null,
                    "neighborhood": null,
                    "sub_locality": null,
                    "state_iso_code": null,
                    "country": null,
                    "country_iso_code": null
                },
                "skills": [],
                "available_for_hire": false,
                "can_work_remotely": false,
                "resource_key": "e3dd8937e5113a36f98fcba2a7c92a61e05bfb75",
                "account": "basic"
            },
            "play": {
                "status": "playable"
            },
            "app": {
                "name": "Parallel Uploader",
                "uri": "/apps/87099"
            },
            "status": "available",
            "resource_key": "80cb164c7389a4c828ca3cf5e39685266040015b",
            "upload": null,
            "transcode": null,
            "is_playable": true,
            "has_audio": true
        }
    ]
}
 

Request      

POST api/v1/vimeo/get-my-video-list

Body Parameters

page  required optional  

string Mean pagination or page number

per_page  required optional  

string Mean record per page

query  optional optional  

string Mean search record by video title or video id

organization_id  required optional  

int The Id of a suborganization

Get My Komodo Videos List

Get the specified Komodo API setting data. Using inside H5p Curriki Interactive Video

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/komodo/get-my-video-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": \"1\",
    \"per_page\": \"10next page and so on\",
    \"search\": \"Wildlife\",
    \"organization_id\": \"1\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/komodo/get-my-video-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": "1",
    "per_page": "10next page and so on",
    "search": "Wildlife",
    "organization_id": "1"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/komodo/get-my-video-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => '1',
            'per_page' => '10next page and so on',
            'search' => 'Wildlife',
            'organization_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):


{
    "errors": [
        "Unable to find Komodo API settings!"
    ]
}
 

Example response (200):


{
    "total_record": 3,
    "page": 1,
    "per_page": 10,
    "paging": {
        "next": null,
        "previous": null,
        "first": "/api/curriki/v1/recordings?per_page=10&page=1",
        "last": "/api/curriki/v1/recordings?per_page=10&page=1"
    },
    "data": [
        {
            "id": "P63Y51bGxgpwJKNNW0Rl",
            "title": "Test Demo",
            "createdAt": "8/31/2022, 9:53:11 AM",
            "htmlUrl": "https://komododecks.com/recordings/P63Y51bGxgpwJKNNW0Rl",
            "videoUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/IzFnGEbx3QOiQk1bOIlN0OBVwGx1/P63Y51bGxgpwJKNNW0Rl/index-c2317da67746280b1097c1a92e88a706d8816c132d92bab824f9ad28e7d39187.m3u8",
            "previewUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/IzFnGEbx3QOiQk1bOIlN0OBVwGx1/P63Y51bGxgpwJKNNW0Rl/preview-c2317da67746280b1097c1a92e88a706d8816c132d92bab824f9ad28e7d39187.jpg",
            "previewWidth": 1920,
            "previewHeight": 1200
        },
        {
            "id": "WpFT8CY7MbWyG50xn7F6",
            "title": "Komodo Technologies: Screencasting with ease",
            "createdAt": "8/31/2022, 9:50:03 AM",
            "htmlUrl": "https://komododecks.com/recordings/WpFT8CY7MbWyG50xn7F6",
            "videoUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/IzFnGEbx3QOiQk1bOIlN0OBVwGx1/WpFT8CY7MbWyG50xn7F6/index-de16e4eac33d578e38d0d34d65255a86e69ab428022f08548e5fafd37044c0aa.m3u8",
            "previewUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/IzFnGEbx3QOiQk1bOIlN0OBVwGx1/WpFT8CY7MbWyG50xn7F6/preview-de16e4eac33d578e38d0d34d65255a86e69ab428022f08548e5fafd37044c0aa.jpg",
            "previewWidth": 1920,
            "previewHeight": 1200
        },
        {
            "id": "IXGhTosmvm8ZIv3xuHBQ",
            "title": "Komodo Hello World Introduction! ",
            "createdAt": "8/31/2022, 9:46:59 AM",
            "htmlUrl": "https://komododecks.com/recordings/IXGhTosmvm8ZIv3xuHBQ",
            "videoUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/f0tZfLY6wQSl1F15zC8lhsJJYsZ2/B9ObDzs6jrNF6YKxkdow/index-1bfad33edb967387cf0815c7e341f01861f0728f53b90da6306403168e77313f.m3u8",
            "previewUrl": "https://storage.googleapis.com/komodo-280e0.appspot.com/f0tZfLY6wQSl1F15zC8lhsJJYsZ2/B9ObDzs6jrNF6YKxkdow/preview-1bfad33edb967387cf0815c7e341f01861f0728f53b90da6306403168e77313f.jpg",
            "previewWidth": 1800,
            "previewHeight": 1168
        }
    ]
}
 

Request      

POST api/v1/komodo/get-my-video-list

Body Parameters

page  required optional  

string Mean pagination or page number

per_page  required optional  

string Mean record per page

search  optional optional  

string Mean search record by video title

organization_id  required optional  

int The Id of a suborganization

Smithsonian Contents List

Get Smithsonian Contents List

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/smithsonian/get-content-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"q\": \"q=online_visual_material:true AND IC 443\",
    \"start\": 1,
    \"rows\": 10,
    \"sort\": \"asc\",
    \"type\": \"ead_collection\",
    \"row_group\": \"user\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/smithsonian/get-content-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "q": "q=online_visual_material:true AND IC 443",
    "start": 1,
    "rows": 10,
    "sort": "asc",
    "type": "ead_collection",
    "row_group": "user"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/smithsonian/get-content-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'q' => 'q=online_visual_material:true AND IC 443',
            'start' => 1,
            'rows' => 10,
            'sort' => 'asc',
            'type' => 'ead_collection',
            'row_group' => 'user',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/smithsonian/get-content-list

Body Parameters

q  string optional  

Use for search

start  integer optional  

Like page number

rows  integer optional  

Like page size or number of record per page

sort  string optional  

Sort list by id, newest, updated and random field

type  string optional  

Get list by type = edanmdm or ead_collection or ead_component or all

row_group  string optional  

The designated set of row types you are filtering it may be objects, archives

Get Smithsonian Content

Get Smithsonian Content Detail

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/smithsonian/get-content-detail" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": \"con-1620124231687-1620150333404-0\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/smithsonian/get-content-detail"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "con-1620124231687-1620150333404-0"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/smithsonian/get-content-detail',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 'con-1620124231687-1620150333404-0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/smithsonian/get-content-detail

Body Parameters

id  string optional  

Get Smithsonian Search Filter Data

Get a list of search filter data w.r.t filter category

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/smithsonian/get-search-filter-data" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"category\": \"itaque\",
    \"starts_with\": \"Jhon\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/smithsonian/get-search-filter-data"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "category": "itaque",
    "starts_with": "Jhon"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/smithsonian/get-search-filter-data',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'category' => 'itaque',
            'starts_with' => 'Jhon',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": 200,
    "responseCode": 1,
    "response": {
        "terms": [
            "",
            "1861 New York Great Fair",
            "1864 New York Great Fair",
            "42.00 biology: general",
            "42.34 mycology",
            "42.40 botany: general",
            "42.45 botanical gardens, herbariums",
            "42.51 algae",
            "42.59 botany: other",
            "42.75 insects",
            "76.41 gardening",
            "9/11/2001: Crash of United Airlines Flight 93, Shanksville, Pennsylvania",
            "9/11/2001: Destruction of World Trade Center, New York City",
            "A Christmas Carol",
            "Abbeys",
            "Abduction",
            "Abhaya mudra",
            "Abhiseka mudra",
            "Abies lasiocarpa",
            "Abnormalities",
            "Abnormalities, Human",
            "Abolitionist Tea Service",
            "Abolitionist movement",
            "Abolitionists",
            "Abronia umbellata",
            "Absorption of water",
            "Acacia",
            "Acacia tree",
            "Academic costume",
            "Academic study",
            "Academy of Music",
            "Acala (Buddhist deity)",
            "Acalephae",
            "Acanthocephala",
            "Acanthurus",
            "Acarology",
            "Accidents",
            "Accipitridae",
            "Account books",
            "Accountanting",
            "Accounting",
            "Acculturation",
            "Acer carolinianum",
            "Acer rubrum",
            "Achaemenid dynasty, 559-330 B.C.",
            "Achatinella",
            "Achatinidae",
            "Achillea lanulosa",
            "Achilles (Greek mythology)",
            "Acids",
            "Acireale",
            "Acmaeidae",
            "Acmaeodera",
            "Acoelomorpha",
            "Aconitum columbianum",
            "Acorn worms",
            "Acorns",
            "Acrobats",
            "Actaea arguta",
            "Actinopoda",
            "Actinopteri",
            "Actinopterygii",
            "Activism",
            "Activists",
            "Actors and actresses",
            "Adam (Biblical figure)",
            "Adder",
            "Adding Machines",
            "Adenophorea",
            "Adhesives",
            "Adil Shahi dynasty (1489 - 1686)",
            "Adirondack Forest Preserve",
            "Adirondacks",
            "Administrators",
            "Admiral",
            "Adobe",
            "Adonis (Greek deity)",
            "Adoration of the Magi",
            "Adornment",
            "Adventure stories",
            "Adventurers",
            "Adventures of Tom Sawyer",
            "Advertising",
            "Aegidae",
            "Aeneas (Legendary character)",
            "Aeolus, son of Hippotes (Greek mythology)",
            "Aerial bombings",
            "Aerial operations",
            "Aerial photography",
            "Aerodynamics",
            "Aeroelasticity",
            "Aeronautical engineer",
            "Aeronautics",
            "Aesculus pavia",
            "Aeshnidae",
            "Aesthetics",
            "Affidavits",
            "African American - Latinx Solidarity",
            "African American choirs",
            "African American clergy",
            "African American women",
            "African diaspora",
            "African gray parrot",
            "African influences",
            "Afrique orientale, Commerces",
            "Afrique orientale, Géographie",
            "Afrique orientale, Histoire",
            "Afrobeat (Music)",
            "Afrofuturism",
            "Afternoon",
            "Agaricomycetes",
            "Agate",
            "Agava lechuguilla",
            "Agaves",
            "Agnatha",
            "Agony in the garden",
            "Agoseris aurantiaca",
            "Agoseris carnea",
            "Agoseris gracilens",
            "Agoseris graminifolia",
            "Agoseris villosa",
            "Agriculture",
            "Agriculturists",
            "Aigle",
            "Air",
            "Air mail service",
            "Air pilots",
            "Air sacs (Bird anatomy)",
            "Air traffic control",
            "Air travel",
            "Air warfare",
            "Air-pump",
            "Aircraft industry",
            "Airfield",
            "Airline",
            "Airlines",
            "Airplane propellers",
            "Airplane wings",
            "Airplanes",
            "Airships",
            "Akka",
            "Akshobhya Buddha",
            "Alabaster",
            "Alaska fleabane",
            "Alauda",
            "Alberta paintbrush",
            "Alberta primrose",
            "Albi",
            "Albies fraseri",
            "Albums",
            "Alchemy",
            "Alcohol",
            "Alcoholic beverage industry",
            "Alcoholic beverages",
            "Alcyonacea",
            "Alcyonaria",
            "Alderman",
            "Aleutian fleabane",
            "Alexander McBride Collection of U.S. Patriotic Covers",
            "Alexandrofski Prison",
            "Algae",
            "Algae (Grunow)",
            "Algonquiens",
            "Algues marines",
            "Alice in Wonderland",
            "Aliens",
            "Allegorical",
            "Allegory",
            "Alley",
            "Alligators",
            "Allium cernuum",
            "Allium sibiricum",
            "Almanacs",
            "Almanacs, yearbooks, etc\\",
            "Almeria",
            "Alnus regosa",
            "Alnus sinuata",
            "Alphabet books",
            "Alphabet rhymes",
            "Alphabets",
            "Alpine fernlife",
            "Alpine fir",
            "Alpine fleabane",
            "Alpine forget-me-not",
            "Alpine harebell",
            "Alpine milkvetch",
            "Alpine monkey flower",
            "Alpine pointvetch",
            "Alpine ragwort",
            "Alpine vetch",
            "Alstadt",
            "Altars",
            "Altitudes",
            "Amateur theater",
            "Amatitlan",
            "Amazons",
            "Ambassador",
            "Amber",
            "Ambrotypist",
            "Ambulances",
            "Amelanchier alnifolia",
            "Amelianchier oblongifolia",
            "American Art",
            "American Civil War (1861-1865)",
            "American Civil War Prints",
            "American Expansion (1800-1860)",
            "American History Education Collection",
            "American Revolution (1775-1783)",
            "American South",
            "American West",
            "American bison",
            "American chestnut",
            "American columbine",
            "American essays",
            "American mistletoe",
            "American pasqueflower",
            "American poetry",
            "American twinflower",
            "American vetch",
            "American waterlily",
            "American wisteria",
            "Amiens Cathedral",
            "Amitabha Buddha",
            "Ammonoidea",
            "Ammunition",
            "Amoeba",
            "Ampeliscidae",
            "Ampelopsis",
            "Amphibians",
            "Amphibians as pets",
            "Amphibians, Fossil",
            "Amphidoa",
            "Amphineura",
            "Amphipoda",
            "Amphitheater",
            "Ampullaria",
            "Amsterdam",
            "Amulets",
            "Amusement parks",
            "Amusements",
            "Anaesthetist",
            "Anaphalis margaritacea",
            "Anarchist",
            "Anatidae",
            "Anatomical study",
            "Anatomist",
            "Anatomy",
            "Anatomy, Artistic",
            "Anatomy, Comparative",
            "Ancestral",
            "Anchor",
            "Anchors",
            "Anchors (watercraft equipment)",
            "Ancient Egyptian Art",
            "Ancient Near Eastern Art",
            "Anculosa",
            "Ancylidae",
            "Andreaeopsida",
            "Andromeda (Greek mythology)",
            "Androsace carinata",
            "Androsace subumbellata",
            "Anecdotes",
            "Anemone",
            "Anemone canadensis",
            "Anemone deltoidea",
            "Anemone drummondii",
            "Anemone globosa",
            "Anemone parviflora",
            "Anemone zephyra",
            "Anemonella",
            "Anemopsis californica",
            "Aneurysm",
            "Anémones de mer",
            "Angels",
            "Anger",
            "Angiosperms",
            "Angkor period (802 - 1431)",
            "Anglerfishes",
            "Anglo-French War, 1793-1802",
            "Angora goat",
            "Animal Locomotion",
            "Animal Population Groups",
            "Animal artist",
            "Animal behavior",
            "Animal culture",
            "Animal ecology",
            "Animal forms",
            "Animal horn",
            "Animal husbandry",
            "Animal in art",
            "Animal intelligence",
            "Animal introduction",
            "Animal locomotion",
            "Animal magnetism",
            "Animal material",
            "Animal mechanics",
            "Animal products",
            "Animal remains (Archaeology)",
            "Animal tamer",
            "Animal tracks",
            "Animal worship",
            "Animalcules",
            "Animals",
            "Animals in art",
            "Animals in literature",
            "Animals welfare",
            "Animals, Fossil",
            "Animator",
            "Anishira",
            "Anisostichus capreolatus",
            "Anjali mudra",
            "Annelida",
            "Annexation to the United States",
            "Anniversaries",
            "Annuals (Plants)",
            "Annunciation",
            "Anodonta",
            "Anopla",
            "Anoplura",
            "Antelope",
            "Antelopes",
            "Antennaria howellii",
            "Antennaria luzuloides",
            "Antennaria racemosa",
            "Antennaria rosea",
            "Anteus (Greek mythology)",
            "Anthicidae",
            "Anthocoridae",
            "Anthomyiidae",
            "Anthozoa",
            "Anthozoa, Fossil",
            "Anthropoda",
            "Anthropology",
            "Anthropometry",
            "Anti-Lynching Movement",
            "Anti-apartheid movements",
            "Anti-slavery movements",
            "Antibody Initiative: Polio",
            "Antietam, Battle of, Md., 1862",
            "Antigone (Greek mythology)",
            "Antimony",
            "Antiquary",
            "Antiquities",
            "Antislavery",
            "Antitoxins",
            "Antlers",
            "Ants",
            "Antwerp Cathedral",
            "Anura",
            "Anvil",
            "Anyang period, Late Shang dynasty (ca. 1300 - 1050 BCE)",
            "Apartment",
            "Apes",
            "Aphids",
            "Aphrodite (Greek deity)",
            "Aplacophora",
            "Aplysia",
            "Aplysiidae",
            "Apocyum androsaemfolium",
            "Apollo (Greek deity)",
            "Apostles",
            "Apothecary",
            "Appellate Court Building",
            "Appendicularia",
            "Appenine Mountains",
            "Apple",
            "Apple orchard",
            "Apple tree",
            "Apple trees",
            "Appliance",
            "Appraiser",
            "Apprentices",
            "Apron",
            "Apterygota",
            "Aquarium animals",
            "Aquarium fishes",
            "Aquariums",
            "Aquariums (containers)",
            "Aquarius",
            "Aquatic animals",
            "Aquatic biology",
            "Aquatic insects",
            "Aquatic invertebrates",
            "Aqueduct",
            "Aquila",
            "Aquilegia brevistyla",
            "Aquilegia caerulea",
            "Aquilegia canadensis",
            "Aquilegia ecalcarata",
            "Aquilegia flavescens",
            "Aquilegia formosa",
            "Aquilegia saximontana",
            "Arabian Nights",
            "Arabis drummondii",
            "Arabis lyallii",
            "Arachnida",
            "Arachnida, Fossil",
            "Aradidae",
            "Arbitrator",
            "Arbor Day",
            "Arborettes",
            "Arboretum",
            "Arbors",
            "Arc measures",
            "Arcade",
            "Arch",
            "Arch of Titus",
            "Archaeogastropoda",
            "Archaeology",
            "Archaeopterygiformes",
            "Archery",
            "Arches",
            "Archiacanthocephala",
            "Architects",
            "Architecture",
            "Architecture, Baroque",
            "Architecture, Colonial",
            "Architecture, Commercial Buildings",
            "Architecture, Educational Buildings",
            "Architecture, Historic Residences",
            "Architecture, Industrial Buildings",
            "Archivist",
            "Arcoida",
            "Arctic Ocean",
            "Arctiidae",
            "Arctomecon merriami",
            "Arctostaphylos uva-ursi",
            "Arctous alpina",
            "Arcturidae",
            "Arcturus",
            "Area measurement",
            "Arenaria formosa",
            "Arethusa (Greek mythology)",
            "Arethusa bulbosa",
            "Argemone hispeda",
            "Argo Navis",
            "Ariadne (Greek mythology)",
            "Aries (Astrology)",
            "Arisaema dracontium",
            "Arisaema triphyllum",
            "Aristocracy (Social class)",
            "Arithmetic Teaching",
            "Arm",
            "Armband",
            "Armchairs",
            "Armies",
            "Armor",
            "Armory",
            "Arms transfers",
            "Army scout",
            "Arnica",
            "Arnica alpina",
            "Arnica latifolia",
            "Arnica louisiana",
            "Arnica tomentosa",
            "Aronia arbutifolia",
            "Arranger",
            "Arrow",
            "Arrow maker",
            "Arrow poisons",
            "Arrowleaf groundsel",
            "Arsenic",
            "Arsenic compounds",
            "Art",
            "Art & Photography",
            "Art Palace",
            "Art Patron",
            "Art and industry",
            "Art and photography",
            "Art building",
            "Art chrëtien",
            "Art collector",
            "Art critic",
            "Art dealer",
            "Art deco",
            "Art director",
            "Art exhibition",
            "Art galleries",
            "Art gallery",
            "Art historian",
            "Art instructor",
            "Art mëdiëval",
            "Art museum administrator",
            "Art museum director",
            "Art museum president",
            "Art museum trustee",
            "Art museums",
            "Art nouveau",
            "Art nouveau dress",
            "Art of Writing",
            "Art school administrator",
            "Art thief",
            "Art tool",
            "Art, African",
            "Art, American",
            "Art, Baroque",
            "Art, Byzantine",
            "Art, Docorative",
            "Art, Prehistoric",
            "Art, Romanesque",
            "Art, abstract",
            "Artemia",
            "Artemisia discolor",
            "Arthoniomycetes",
            "Arthropods",
            "Arthurian Legend",
            "Artichoke",
            "Articulata",
            "Artifact Walls exhibit",
            "Artificial limbs",
            "Artificial satellites",
            "Artillery",
            "Artiodactyla, Fossil",
            "Artist and model",
            "Artist's Effects",
            "Artist's brush",
            "Artist's effects",
            "Artist's model",
            "Artists",
            "Artists' marks",
            "Artists' tools",
            "Arts and crafts movement",
            "Arts and religion",
            "Arts and sciences",
            "Arts décoratifs",
            "Arts of the Islamic World",
            "Arts, Modern",
            "Artwork",
            "Arum arrowhead",
            "Asarum canadense",
            "Ascaris",
            "Ascaris megalocephala",
            "Ascelpias",
            "Ascelpias tuberosa",
            "Ascetic",
            "Ascidiacea",
            "Ascidies",
            "Asclepias speciosa",
            "Ascot",
            "Ascothoracica",
            "Asellidae",
            "Asellus aquaticus",
            "Ashrams",
            "Asiatic elephant",
            "Asimina triloba",
            "Asolo",
            "Aspalathus",
            "Asrum",
            "Assassin",
            "Assassin bugs",
            "Assassination",
            "Assimilation",
            "Assisi",
            "Assistant Secretary of Treasury",
            "Associations",
            "Associations and institutions",
            "Astacidae",
            "Astacus",
            "Astasahasraka Prajnaparamita",
            "Aster",
            "Aster campestris",
            "Aster conspicuus",
            "Aster englemann",
            "Aster hirariifolius",
            "Aster paludosus",
            "Aster squarrosus",
            "Asteriidae",
            "Asterocheridae",
            "Asteroidea",
            "Astor",
            "Astor House",
            "Astragalus alpinus",
            "Astragalus bourgovii",
            "Astragalus coccineus",
            "Astrology",
            "Astronomers",
            "Astronomical instruments",
            "Astronomical observatories",
            "Astronomy",
            "Asuka period (552 - 710)",
            "Atamasco-lily",
            "Atamosco atamasco",
            "Atheism",
            "Athletes",
            "Athletics",
            "Atlantic herring",
            "Atlas (Greek deity)",
            "Atmosphere, Upper",
            "Atmospheric electricity",
            "Atmospheric temperature",
            "Atomic theory",
            "Atractiellomycetes",
            "Attendant",
            "Auction catalogs",
            "Auctioneer",
            "Audiences",
            "Auditor",
            "Aunt Charity",
            "Auriculaceae",
            "Aurora",
            "Aurora (Roman deity)",
            "Auroras",
            "Authority",
            "Authors",
            "Autogiros",
            "Autograph",
            "Autographs",
            "Automobile drivers",
            "Automobile driving",
            "Automobile industry and trade",
            "Automobile travel",
            "Automobiles",
            "Autumn",
            "Avalanche",
            "Avalanche buttercup",
            "Avalanche lily",
            "Avalokite?svara (Buddhist deity)",
            "Avant-garde (Aesthetics)",
            "Aviaries",
            "Award",
            "Awards",
            "Awnings",
            "Axes",
            "Axolotls",
            "Aye-aye",
            "Ayutthaya period (1351 - 1767)",
            "Azaleas",
            "BOTANICA MEDICA",
            "Ba Xian (Taoist mythology)",
            "Baburnama",
            "Baby carriages",
            "Bacchanalia",
            "Bacchantes",
            "Bacon's Rebellion, 1676",
            "Bacteriologist",
            "Bad Kissingen",
            "Badges",
            "Bag punching",
            "Baggage & Luggage",
            "Bagpipe",
            "Baguette",
            "Baimiao style",
            "Bakers and bakeries",
            "Baking",
            "Balaenoptera",
            "Balarama",
            "Balconies",
            "Bald eagle",
            "Baleen whales",
            "Ballet",
            "Ballistics",
            "Balloon",
            "Balloonists",
            "Balloons (Aircraft)",
            "Balloons (Novelties)",
            "Ballroom dancing",
            "Balls (Sporting goods)",
            "Balsam fir",
            "Balsam root",
            "Balsamorhiza sagittata",
            "Balsams",
            "Balustrade",
            "Bamboo",
            "Bananas",
            "Band (Music)",
            "Bands (Music)",
            "Bands (music)",
            "Bangiophyceae",
            "Bangladesh",
            "Banjo",
            "Banjos",
            "Bank cashier",
            "Bank director",
            "Bankers",
            "Banks and banking",
            "Banks aned banking",
            "Banner",
            "Banners",
            "Bannister",
            "Banyan",
            "Baptisimal font",
            "Baptism of Christ",
            "Baptista bructeata",
            "Barbel (Anatomy)",
            "Barbel (Fish)",
            "Barber",
            "Barberini Palace",
            "Barberries",
            "Barbers' supplies industry",
            "Barbershop",
            "Barbershop quartets",
            "Barbershops",
            "Barcaroles",
            "Barge",
            "Bark",
            "Bark beetles",
            "Barley",
            "Barnacles",
            "Barnyard",
            "Barometer",
            "Barometers",
            "Baron",
            "Baroness",
            "Barracks",
            "Barrel",
            "Barrel cactus",
            "Barrel organ, Hydraulic",
            "Barrette",
            "Bars (Drinking establishments)",
            "Bartender",
            "Bas-relief",
            "Baseball",
            "Baseball Equipment",
            "Baseball bat",
            "Baseball cap",
            "Baseball glove",
            "Baseball players",
            "Baseball stadium",
            "Basement",
            "Basketball",
            "Baskets",
            "Bass",
            "Bassin d'Apollon",
            "Bassin de Neptune",
            "Bastard toadflex",
            "Bathing",
            "Bathroom",
            "Baths of Caracalla",
            "Batik",
            "Baton",
            "Batrachia",
            "Batrachium trichophyllum",
            "Bats",
            "Bats, Fossil",
            "Battenberg lace",
            "Battery",
            "Battle between the Monitor and Merrimac",
            "Battle casualties",
            "Battle of Eylau",
            "Battle of Fort Sumter",
            "Battle of Fort Sumter, 1861",
            "Battle of Lookout Mountain",
            "Battle of Monterrey",
            "Battle of Stony Point",
            "Battlefield",
            "Battlefields",
            "Battleground",
            "Battles",
            "Battleships",
            "Bay",
            "Bay of Naples",
            "Bay of Panama",
            "Bayard",
            "Bayeux tapestry",
            "Bayonet",
            "Bayonet rush",
            "Bayonets",
            "Bays",
            "Bdelloidea",
            "Beaches",
            "Beads",
            "Beaked hazelnut",
            "Beaked whales",
            "Beaker",
            "Bear Creek Canyon",
            "Bearberry",
            "Bearberry honeysuckle",
            "Beards",
            "Beargrass",
            "Bearpoppy",
            "Bears",
            "Bearskin",
            "Beatrice",
            "Beautician",
            "Beauty",
            "Beauty culture",
            "Beauty parlor",
            "Beauty salons (Beauty shops)",
            "Beauty schools",
            "Beauty shops",
            "Beautyberry",
            "Beavers",
            "Bebop (Music)",
            "Bed",
            "Beder Khan Bey Chief of Jezirah",
            "Bedroom",
            "Beds",
            "Bee culture",
            "Bee eaters",
            "Beech",
            "Beech tree",
            "Beeldende kunsten",
            "Beer",
            "Bees",
            "Beetles",
            "Beetles, Fossil",
            "Beets",
            "Befaria racemosa",
            "Beggar",
            "Beggar's Dance",
            "Begging",
            "Begging Dance",
            "Begonia",
            "Beirut",
            "Belgian colonialism",
            "Bell tower",
            "Belle Fourche Canyon",
            "Belle Fourche River",
            "Belle Vue",
            "Bellerophon",
            "Bellflower",
            "Bellows",
            "Bells",
            "Bells and sets of bells",
            "Belmont",
            "Belt",
            "Belts (Clothing)",
            "Bench",
            "Benediction",
            "Benefactor",
            "Beneficial insects",
            "Beni Berzi",
            "Beni Hasan",
            "Benin art",
            "Benjamin B. Lipsner Airmail Collection",
            "Benten",
            "Beret",
            "Bergamont",
            "Bering Sea controversy",
            "Berkeley Springs",
            "Berman Models",
            "Berries",
            "Berry",
            "Bertha",
            "Bethayres",
            "Bettws-y-Coed",
            "Beverage",
            "Beverages",
            "Beverly Farms",
            "Beverly Hills, CA",
            "Beyoglu",
            "Bhagavata Purana",
            "Bharata",
            "Bhumisparsha mudra",
            "Bible",
            "Bible and geology",
            "Bible plays",
            "Bible stories",
            "Bible stories, Chinook",
            "Bible stories, Dakota",
            "Bible stories, English",
            "Bible stories, Nipissing",
            "Bible, N.T.",
            "Bible, O.T.",
            "Biblical teaching",
            "Bibliophile",
            "Bickham",
            "Bicorne",
            "Bicycle industry",
            "Bicycles",
            "Bicycling",
            "Big game animals",
            "Big game hunting",
            "Big whortleberry",
            "Bignonia radicans",
            "Bikukulla canadensis",
            "Bikukulla cucullaria",
            "Bildband",
            "Bilecik",
            "Bill (Anatomy)",
            "Billboard",
            "Billiards player",
            "Bingen",
            "Binoculars",
            "Bio-bibliography",
            "Biochemistry",
            "Biogeography",
            "Biographer",
            "Biological control",
            "Biological rhythms in plants",
            "Biological specimens",
            "Biological stations",
            "Biology",
            "Bioluminescence",
            "Bioluminescense",
            "Biometry",
            "Biplanes",
            "Birch tree",
            "Bird and flower",
            "Bird attracting",
            "Bird populations",
            "Bird refuges",
            "Bird trapping",
            "Bird watching",
            "Bird's eye view",
            "Birdcage",
            "Birdhouse",
            "Birds",
            "Birds in art",
            "Birds in literature",
            "Birds of paradise (Birds)",
            "Birds of prey",
            "Birds, Fossil",
            "Birds, Migration of",
            "Birds-eye view",
            "Birdsfoot violet",
            "Birdsongs",
            "Biretta",
            "Birmingham Meeting House",
            "Biro Mountains",
            "Birth control advocate",
            "Birthday books",
            "Bishamon-ten",
            "Bishop",
            "Bismuth",
            "Bites and stings",
            "Bithynia (Mollusks)",
            "Bitterroot",
            "Bivalves",
            "Bivalves, Fossil",
            "Bivalvia",
            "Biwa",
            "Black Canyon",
            "Black Canyon of the Gunnison",
            "Black Enterprise",
            "Black Lake",
            "Black Lives Matter",
            "Black Mesa",
            "Black Nationalism",
            "Black Power (Black Pride)",
            "Black Press",
            "Black corals",
            "Black is Beautiful",
            "Black people",
            "Black pepper (Plant)",
            "Black power",
            "Black race",
            "Blackberry",
            "Blackberry vine",
            "Blackbird",
            "Blackboard",
            "Blackface",
            "Blackmailer",
            "Blacksmith",
            "Blacksmiths",
            "Bladder campion",
            "Blake (Steamer)",
            "Blake Block",
            "Blanc Negre",
            "Blasting",
            "Blastoidea",
            "Blaxploitation films",
            "Blazing star",
            "Blind",
            "Blizzard",
            "Blocks (Toys)",
            "Blonde (Ship)",
            "Blood",
            "Blood-vessels",
            "Bloodroot",
            "Blotter",
            "Blouay",
            "Blowflies",
            "Blowpipe",
            "Blue Larkspur",
            "Blue Point",
            "Blue bead",
            "Blue beard-tongue",
            "Blue columbine",
            "Blue jay",
            "Blue lupine",
            "Blue phlox",
            "Blue whiting",
            "Blue-and-green style",
            "Blue-eyed Mary",
            "Blue-eyed grass",
            "Bluebird",
            "Blueflag iris",
            "Bluegrass (Music)",
            "Bluegreen gentian",
            "Blues (Music)",
            "Bluets",
            "Boar",
            "Board games",
            "Board of Education",
            "Boat builder",
            "Boater",
            "Boathouse",
            "Boating",
            "Boats and boating",
            "Bobsledding",
            "Bodhi tree",
            "Bodhidharma",
            "Bodhisattva",
            "Bodies of water",
            "Bog kalmia",
            "Bog-asphodel",
            "Bogbean",
            "Boidae",
            "Boilers",
            "Boise",
            "Bolero",
            "Bolsena",
            "Boltraffio",
            "Bomber Jacket",
            "Bomber jacket",
            "Bombycidae",
            "Bonaventure Cemetery",
            "Bone",
            "Bone carving",
            "Bone implements",
            "Bones",
            "Bonkei",
            "Bonnet",
            "Bonsai",
            "Bonten",
            "Book collecting",
            "Book collectors",
            "Book industries and trade",
            "Book ornamentation",
            "Bookbinders",
            "Bookbinding",
            "Bookcase",
            "Bookends",
            "Bookplates",
            "Bookplates, Italian",
            "Books and reading",
            "Bookseller",
            "Booksellers and bookselling",
            "Booksellers' catalogs",
            "Bookshelf",
            "Boonsboro",
            "Bootblack",
            "Booties",
            "Bopyridae",
            "Boquehomo",
            "Borders (Ornament areas)",
            "Borders (Ornamental areas)",
            "Bordighera",
            "Borghese Gardens",
            "Bornes",
            "Boston Common",
            "Boston Harbor",
            "Boston Massacre (1770)",
            "Boston Stock Exchange",
            "Boston Stump",
            "Boston, MA",
            "Botanical chemistry",
            "Botanical gardens",
            "Botanical illustration",
            "Botanical specimens",
            "Botanical study",
            "Botanist",
            "Botany",
            "Botany, Economic",
            "Botany, Medical",
            "Bottle",
            "Bottle gentian",
            "Botzen",
            "Boulders",
            "Boulevard St. Germain",
            "Boulevard des Italiens",
            "Boulogne sur Mer",
            "Boundaries",
            "Bouquet",
            "Bouquet holders",
            "Bouquetiers",
            "Bourgeau rose",
            "Boutonniere",
            "Bouwkunst",
            "Bow",
            "Bow and Arrow",
            "Bow and arrow",
            "Bow priest",
            "Bowerbirds",
            "Bowl",
            "Bowling",
            "Bowmansroot",
            "Bowtie",
            "Box",
            "Box huckleberry",
            "Boxer",
            "Boxing glove",
            "Boxing ring",
            "Boy",
            "Boys",
            "Bozeman Pass",
            "Bracelet",
            "Brachial plexus",
            "Brachiopoda",
            "Brachiopoda, Fossil",
            "Brachycera",
            "Brahma? (Hindu deity)",
            "Brain",
            "Branchiopoda",
            "Branchville",
            "Brandywine Creek",
            "Brass",
            "Brass (alloy)",
            "Brasswork",
            "Brattle Street",
            "Brattleboro",
            "Braubach",
            "Brave's Dance",
            "Bread",
            "Break dancing",
            "Breeding",
            "Bremen (Ship)",
            "Brenta River",
            "Brenton Light",
            "Breweries",
            "Brewers",
            "Brewing",
            "Brick",
            "Brick houses",
            "Bricklayers",
            "Bricks",
            "Bride",
            "Bridge builder",
            "Bridge of Kurprissar",
            "Bridge of Sighs",
            "Bridges",
            "Briefcase",
            "Brigadier General",
            "Brigadier general",
            "Bristle-cone pine",
            "Bristol",
            "Bristol Cathedral",
            "Bristol, England",
            "British Consulate",
            "British Museum",
            "British colonialism",
            "British colonies",
            "Brittany",
            "Broad Street",
            "Broad-leaved candle-berry myrtle",
            "Broadcast journalist",
            "Broadcasting",
            "Broadside",
            "Broadsides",
            "Broadway",
            "Broadway Theatre",
            "Brodiaea laxa",
            "Brodiaea pulchella",
            "Broker",
            "Brokers",
            "Bromeliaceae",
            "Bronc rider",
            "Bronx River",
            "Bronze Age (1500 - 400 BCE)",
            "Bronze bells",
            "Bronzes",
            "Bronzes, American",
            "Brooch",
            "Brooches",
            "Brook lobelia",
            "Brooklyn",
            "Brooklyn Bridge",
            "Brooklyn, NY",
            "Broom",
            "Broomrape",
            "Brother of US President",
            "Browning",
            "Browntail moth",
            "Bruchidae",
            "Bruges",
            "Brush",
            "Bryophytes",
            "Bryopsida",
            "Bryozoa",
            "Bryozoa, Fossil",
            "Bubble blowing",
            "Buccaneers",
            "Buccinidae",
            "Buccinum",
            "Buckbean",
            "Bucket",
            "Buckman Tavern",
            "Buddha Bhaisajyaguru",
            "Buddhist gods",
            "Buddhist temples",
            "Buff monkeyflower",
            "Buff pussytoes",
            "Buffalo Island",
            "Buffalo Soldiers",
            "Buffalo, NY",
            "Buffaloes",
            "Bugle",
            "Bugle calls",
            "Bugles",
            "Builder",
            "Building, Brick",
            "Buildings, structures, etc",
            "Bulbs (Plants)",
            "Buliminidae",
            "Bulimulidae",
            "Bull Dance",
            "Bulldog",
            "Bullet",
            "Bulletin 173",
            "Bullets",
            "Bullfighting",
            "Bullfights in art",
            "Bulls",
            "Bunchberry",
            "Bungalows",
            "Bunker Hill, Battle of (Boston, Massachusetts : 1775)",
            "Buprestidae",
            "Bur-forget-me-not",
            "Burdocks",
            "Bureaucrat",
            "Burgess milkvetch",
            "Burlesque",
            "Burns Brothers",
            "Burnside Bridge",
            "Burrower bugs",
            "Bursa",
            "Bush cinquefoil",
            "Bushcow",
            "Bushkill Creek",
            "Bushpoppy",
            "Business",
            "Business and Finance",
            "Business executive",
            "Business manager",
            "Businessperson",
            "Bustards",
            "Busts",
            "Butte De Mort",
            "Butterflies",
            "Butterflies in art",
            "Butterflies, Fossil",
            "Butterfly pea",
            "Butterfly violet",
            "Butterfly weed",
            "Button",
            "Buttons",
            "Byrne",
            "Byrsonima",
            "CRIPTOGAMAS",
            "Cabane's Trading House",
            "Cabbage",
            "Cabin Creek",
            "Cabinet",
            "Cabinet Member",
            "Cabinet card",
            "Cabinet hardware",
            "Cabinetmaker",
            "Cabinets",
            "Cabinets of curiosities",
            "Cabinetwork",
            "Cables, Submarine",
            "Cacao",
            "Cactoideae",
            "Cactus",
            "Caddisflies",
            "Cadet",
            "Caduceus",
            "Caecidae",
            "Caecilians",
            "Caenogastropoda",
            "Caernarvon",
            "Caernarvon Castle",
            "Cafe",
            "Cafe Versaille",
            "Cage birds",
            "Cahors",
            "Cake",
            "Cake seller",
            "Cakes",
            "Calais, ME",
            "Calanoida",
            "Calcarea",
            "Calculating Machines",
            "Calculators",
            "Calculus of variations",
            "Calendar reform",
            "Calendar, Japanese",
            "Calendars",
            "California Gold Rush",
            "California fuschia",
            "California ground squirrel",
            "California lilac",
            "California nutmeg",
            "California pitcherplant",
            "California poppy",
            "California rose-bay",
            "Caliph",
            "Calla lily",
            "Calla palustris",
            "Callicarpa americana",
            "Calligraphers",
            "Calligraphie",
            "Calligraphy",
            "Calligraphy, Chinese",
            "Calligraphy, Japanese",
            "Callinectes sapidus",
            "Callospermophilus",
            "Calochortus albus",
            "Calochortus amabilis",
            "Calochortus anoenum",
            "Calochortus claratus",
            "Calochortus elegans",
            "Calochortus kennedyi",
            "Calochortus nuttallii",
            "Calochortus splendens",
            "Calochortus weedii",
            "Caloric engines",
            "Calosoma",
            "Caltha leptosepala",
            "Caltha palustris",
            "Calves",
            "Calycanthus occidentalis",
            "Calypso (Music)",
            "Calystegia convolvulus sepium",
            "Camarocrinus",
            "Camas",
            "Cambarus",
            "Cambridge",
            "Camden",
            "Camden and Amboy Train Derailment",
            "Camel",
            "Camelback Mountain",
            "Camellia",
            "Camels",
            "Cameo",
            "Cameos",
            "Camera",
            "Cameras",
            "Camouflage (Biology)",
            "Camp de Grasse, Saint-Pierre-des-Corps, France",
            "Campaign Director",
            "Campaigns",
            "Campaigns & battles",
            "Campanula",
            "Campanula lasiocarpa",
            "Campanula rotundifolia",
            "Campanulaceae",
            "Campbell",
            "Camping",
            "Campo Santa Margherita",
            "Canada buffaloberry",
            "Canada lily",
            "Canada violet",
            "Canada wildginger",
            "Canadarago Lake",
            "Canal Street",
            "Canal construction workers",
            "Canals",
            "Canals, Interoceanic",
            "Canaries",
            "Canary breeds",
            "Cancellariidae",
            "Cancellariidae, Fossil",
            "Cancellations (Philately)",
            "Cancelled plate",
            "Cancridae",
            "Candelabra",
            "Candelariomycetes",
            "Candle",
            "Candlemaker",
            "Candlestick",
            "Canis Major",
            "Canis Minor",
            "Canna species",
            "Cannas",
            "Canned foods",
            "Cannibalism",
            "Canning and preserving",
            "Cannon",
            "Cannonball",
            "Cannons",
            "Canoes",
            "Canoes and canoeing",
            "Canon",
            "Cantaloupe",
            "Canteen",
            "Cantharidae",
            "Canvas",
            "Canyon",
            "Cap and gown",
            "Cape Ann",
            "Cape Palos",
            "Cape Poge",
            "Cape Poge Lighthouse",
            "Cape San Lucas",
            "Capillarity",
            "Capital and capitol",
            "Capital punishment",
            "Capitalist",
            "Capitalists and financiers",
            "Capitellida",
            "Capitol",
            "Capnoides aureum",
            "Capnoides sempervirens",
            "Caprellidae",
            "Capri",
            "Capricorn",
            "Caprimulgus",
            "Captain",
            "Captive wild birds",
            "Capture of Major John Andre",
            "Capuchin Monastery",
            "Carapidae",
            "Carbon dioxide",
            "Carcassone Castle",
            "Carcassonne",
            "Carcharodon",
            "Card games",
            "Card photographs",
            "Card tricks",
            "Cardiidae",
            "Cardinal",
            "Cardinal flower",
            "Cardinal monkeyflower",
            "Cardiovascular system",
            "Cards",
            "Carex",
            "Carex aurea",
            "Caribbean Sea",
            "Caricature and cartoons",
            "Caricatures",
            "Caricaturist",
            "Carl Whiting Bishop collection",
            "Carnac",
            "Carnation",
            "Carnations",
            "Carnegie libraries",
            "Carnival",
            "Carnivora",
            "Carnivora, Fossil",
            "Carnivorous plants",
            "Carolina jessamine",
            "Carolina maple",
            "Carolina pink",
            "Carp",
            "Carpenter",
            "Carpenters Hall",
            "Carpet",
            "Carpet pink",
            "Carpets",
            "Carriage",
            "Carriage and wagon making",
            "Carriage and wagon painting",
            "Carriage industry",
            "Carriages",
            "Carriages & coaches",
            "Carriages and carts",
            "Carroll",
            "Cart",
            "Cartagena",
            "Carte-de-visite",
            "Carter's Grove",
            "Carthage",
            "Cartography",
            "Cartoonist",
            "Cartoons",
            "Carver",
            "Carving (Decorative arts)",
            "Cascade Mountains",
            "Case furniture",
            "Cased object",
            "Cases",
            "Cases (containers)",
            "Cash and Credit Registers",
            "Cashivo",
            "Cassida",
            "Cassidae",
            "Cassiope",
            "Cassiope mertensiana",
            "Cassiopeia",
            "Cassius",
            "Cassowaries",
            "Cast iron",
            "Cast-iron fronts (Architecture)",
            "Castalia odorata",
            "Castanea dentata",
            "Castilleja miniata",
            "Castilleja occidentalis",
            "Castilleja pallida",
            "Castilleja rhexifolia",
            "Castle Creek",
            "Castle Creek Canyon",
            "Castle Deurenberg",
            "Castle Geyser Cone",
            "Castle Oberlahnstein",
            "Castle Reichenberg",
            "Castle Rheinfels",
            "Castle Rheinstein",
            "Castle Rock",
            "Castle Rushen",
            "Castle Schonburg",
            "Castle of San Jose",
            "Castles",
            "Castles & palaces",
            "Castnia",
            "Castniidae",
            "Castor bean",
            "Castor oil plant",
            "Casualties",
            "Catalina Island",
            "Catalogs and collections",
            "Catalogs, Booksellers'",
            "Catania",
            "Catechisms, Cree",
            "Catechisms, Dakota",
            "Catechisms, Iroquoian",
            "Catechisms, Micmac",
            "Catechisms, Ojibwa",
            "Catechisms, Shoshoni",
            "Caterpillars",
            "Catesby pitcherplant",
            "Catfishes",
            "Cathedral",
            "Cathedral Rocks",
            "Cathedral of Notre Dame",
            "Cathedral of Torcello",
            "Cathedral of Utrecht",
            "Cathedrals",
            "Catherine Market",
            "Catherine and Ralph Benkaim Collection",
            "Catholic schools",
            "Catocala",
            "Cats",
            "Catskill Falls",
            "Catskill Mountains",
            "Cattail",
            "Cattlaya superbus",
            "Cattle",
            "Cattle trade",
            "Caub",
            "Caudofoveata",
            "Caulanthus inflatus",
            "Cavalry",
            "Cave animals",
            "Caves",
            "Caviidae",
            "Caving",
            "Ceanothus thyrsiflorus",
            "Cecum",
            "Cedar tree",
            "Celebra",
            "Celephalopoda",
            "Celestial globes",
            "Celestial mechanics",
            "Celestial sphere",
            "Cellist",
            "Cellules",
            "Cemeteries",
            "Cemetery",
            "Census, 9th, 1870",
            "Centaur",
            "Centaurium venustum",
            "Centaurus",
            "Centennial Exhibition",
            "Centennial Exhibition (1876 : Philadelphia, Pa.)",
            "Centennial celebrations, etc",
            "Centipedes",
            "Central Javanese period (600 - 799)",
            "Central nervous system",
            "Cepaea nemoralis",
            "Cephalaspidea",
            "Cephalaspidomorphi",
            "Cephalopoda, Fossil",
            "Cephalopods",
            "Ceppomorelli",
            "Cerambycidae",
            "Ceramic tiles",
            "Ceramicist",
            "Ceramics",
            "Ceratopogonidae",
            "Ceratopsia",
            "Cereals, Prepared",
            "Ceres",
            "Cerianthidea",
            "Cerion",
            "Cerithiidae",
            "Cerithium",
            "Certificate",
            "Certosa",
            "Cervantes",
            "Cestoda",
            "Cetacea",
            "Cetacea, Fossil",
            "Cetaceans",
            "Céphalopodes",
            "Chaco Canon",
            "Chadds Ford",
            "Chaetodontidae",
            "Chaetognatha",
            "Chaetophorales",
            "Chagres River",
            "Chain",
            "Chairs",
            "Chaise longue",
            "Chakra",
            "Chakrasamvara",
            "Chalcididae",
            "Chalice",
            "Challenger (navire)",
            "Chamber of Commerce",
            "Chambre des Deputes",
            "Champignons comestibles",
            "Chancellor",
            "Chandelier",
            "Chandelier plant",
            "Chang'e",
            "Chank",
            "Channel",
            "Chansons inuites",
            "Chants liturgiques inuit",
            "Chapel of St. Nicholas",
            "Chaplain",
            "Chapo",
            "Chaps",
            "Chapultepec, Battle of, Mexico City, Mexico, 1847",
            "Characeae",
            "Characidae",
            "Character",
            "Characters and characteristics",
            "Charadriidae",
            "Charadriiformes",
            "Chariot",
            "Chariots",
            "Charitable organization",
            "Charity",
            "Charity administrator",
            "Charity founder",
            "Charles L. Cotton",
            "Charleston Lighthouse",
            "Charlestown",
            "Charms",
            "Chartres",
            "Chartres Cathedral",
            "Chase",
            "Chastity",
            "Chateau d'If",
            "Chateau de Chaalis",
            "Chateau de Chevenevase",
            "Chateau de Chillon",
            "Chateau du Chatelard",
            "Chateau-Thierry",
            "Chattanooga",
            "Chautauqua",
            "Checkers",
            "Checks",
            "Cheetahs",
            "Cheilostomata",
            "Chelone glabra",
            "Chelonia (Genus)",
            "Chelonia, Fossil",
            "Chelsea",
            "Chemical elements",
            "Chemical equilibrium",
            "Chemical industry",
            "Chemical reactions",
            "Chemist",
            "Chemistry",
            "Chemistry, Analytic",
            "Chemistry, Inorganic",
            "Chemistry, Organic",
            "Chemistry, Physical and theoretical",
            "Chemists",
            "Chenopodium capitatum",
            "Cherbourg",
            "Cherries",
            "Cherry blossom",
            "Cherry tree",
            "Chess",
            "Chess set",
            "Chest",
            "Chester",
            "Chestnut Street Bridge",
            "Chestnut tree",
            "Chevrotains, Fossil",
            "Cheyne Walk",
            "Chicago Fire",
            "Chicago River",
            "Chicago, IL",
            "Chicano Movement / El Movimiento",
            "Chickasaw plum",
            "Chicken",
            "Chief",
            "Chief Justice of State Supreme Court",
            "Chief Justice of US",
            "Chief justice",
            "Chief of Staff",
            "Chihuahua",
            "Child musicians",
            "Childhood",
            "Children",
            "Children in art",
            "Children's book",
            "Children's encyclopedias and dictionaries",
            "Children's literature, American",
            "Children's paraphernalia",
            "Children's periodicals",
            "Children's poetry",
            "Children's poetry, English",
            "Children's poetry, German",
            "Children's stories, French",
            "Children's stories, Spanish",
            "Chilina",
            "Chilopoda",
            "Chimaeridae",
            "Chimaphila maculata",
            "Chimaphila umbellata",
            "Chimera",
            "Chimney",
            "Chimpanzees",
            "China Trade",
            "China Trade merchant",
            "Chinese Art",
            "Chinese white dolphin",
            "Chinoiserie",
            "Chintz",
            "Chiogenes hispidula",
            "Chioggia",
            "Chionanthus virginica",
            "Chiranthodendron pentadactylon",
            "Chiron",
            "Chironomidae",
            "Chironomus",
            "Chitonidae",
            "Chitons",
            "Chlamydum",
            "Chloropidae",
            "Chocolate",
            "Choker",
            "Chola dynasty (850 - 1280)",
            "Cholla opuntia whipplei",
            "Chondrichthyes",
            "Choniostomatidae",
            "Choreographer",
            "Choreography",
            "Choruses (Men's voices, 4 parts) with piano",
            "Choruses, Secular (Mixed voices, 4 parts) with piano",
            "Christ and Pharisees",
            "Christina",
            "Christmas",
            "Chromadorea",
            "Chromolithography, Victorian",
            "Chronology",
            "Chronology: 1820-1829",
            "Chronology: 1830-1839",
            "Chronology: 1840-1849",
            "Chronology: 1850-1859",
            "Chronology: 1860-1869",
            "Chronology: 1870-1879",
            "Chronology: 1880-1889",
            "Chronology: after 1890",
            "Chronology: before 1820",
            "Chrosperma muscaetoxicum",
            "Chrysamphora californica",
            "Chrysanthemum",
            "Chrysanthemums",
            "Chrysanthemums in art",
            "Chrysogonum virginianum",
            "Chrysomelidae",
            "Chrysopa",
            "Chrysophyceae",
            "Chrysopidae",
            "Church architecture",
            "Church buildings",
            "Church calendar",
            "Church decoration and ornament",
            "Church founder",
            "Church history",
            "Church of Las Monjas",
            "Church of San Domingo",
            "Church of San Francisco",
            "Church of San Giorgio Maggiore",
            "Church of the Merced",
            "Church plate",
            "Church vestments",
            "Churchwarden",
            "Churn",
            "Cicada",
            "Cicada (Genus)",
            "Cicindelae",
            "Cigar",
            "Cigarette",
            "Cigarette holder",
            "Cigars",
            "Ciliata",
            "Cimicidae",
            "Cimolus",
            "Cimon",
            "Cincinnati",
            "Cinderella",
            "Cineraria",
            "Cinnebar Mountain",
            "Cintamani",
            "Cionidae",
            "Ciotat",
            "Ciotat Harbor",
            "Circe",
            "Circulation",
            "Circus",
            "Circus owner",
            "Circus performer",
            "Circuses & shows",
            "Cirolanidae",
            "Cirripedia",
            "Cirsium arizonica",
            "Cirsium hookeranum",
            "Cirsium undulatum",
            "Cities & towns",
            "Cities and towns",
            "Cities and towns in literature",
            "Citron",
            "Citta Vecchia",
            "City Hall",
            "City landscape",
            "City planner",
            "City planning",
            "City walls",
            "Cityscapes",
            "Civet cat",
            "Civic Associations",
            "Civic leader",
            "Civil Servant",
            "Civil War Presentation Swords",
            "Civil War Uniforms",
            "Civil War and Reconstruction",
            "Civil War and Reconstruction (1860-1877)",
            "Civil War patriotic covers",
            "Civil War, 1861-1865",
            "Civil engineer",
            "Civil rights",
            "Civil rights activist",
            "Civil rights leader",
            "Civilization",
            "Civilization, Medieval",
            "Civitavecchia",
            "Civitella",
            "Cladocera",
            "Cladonia",
            "Claims vs. United States",
            "Clam",
            "Clams",
            "Clarence Henry Eagle Collection of Revenues, Proofs and Essays",
            "Clarinet",
            "Clark Fork River",
            "Clark Park",
            "Clasping twistedstalk",
            "Classical (Music)",
            "Classical antiquities",
            "Classical dress",
            "Classification (information handling function)",
            "Classification of sciences",
            "Classifications",
            "Claudine",
            "Clausilia",
            "Clausiliidae",
            "Clay",
            "Clay industries",
            "Clay pipe",
            "Claytonia lanceolata",
            "Claytonia parvifolia",
            "Claytonia virginica",
            "Cleadidæ",
            "Cleaning",
            "Clearwing moths",
            "Clematis columbiana",
            "Clematis crispa",
            "Clematis hirsutissima",
            "Clematis pseudoalpina",
            "Clematis viorna",
            "Clergy",
            "Clerical worker",
            "Cleridae",
            "Clerk",
            "Cleveland",
            "Cleveland, OH",
            "Cliff-dwellings",
            "Cliffrose",
            "Cliffs",
            "Climate",
            "Climbing",
            "Clingfishes",
            "Clinton Hall",
            "Clintonia borealis",
            "Clintonia uniflora",
            "Clipper ships",
            "Clitoria mariana",
            "Cliveden",
            "Cloak",
            "Cloaks",
            "Clock and watch makers",
            "Clock and watch making",
            "Clock towers",
            "Clockmaker",
            "Clocks",
            "Clocks & watches",
            "Clocks and watches",
            "Clocks and watches, Electric",
            "Cloister",
            "Closed gentian",
            "Clothier",
            "Clothing & dress",
            "Clothing and dress",
            "Cloud",
            "Clouds",
            "Clouds in art",
            "Clover",
            "Clown",
            "Clown costume",
            "Clowns",
            "Club",
            "Club administrator",
            "Club founder",
            "Club president",
            "Clubs",
            "Cluny lace",
            "Clupeidae",
            "Cluster pine",
            "Clytie",
            "Cnidaria",
            "Coach",
            "Coach drivers",
            "Coaching (Transportation)",
            "Coal",
            "Coal industry",
            "Coal mines and mining",
            "Coal trade",
            "Coastlines",
            "Coasts",
            "Coat",
            "Coat of arms",
            "Cobalt pigment",
            "Cobbler",
            "Coblenz",
            "Cocapah",
            "Coccidae",
            "Cochaneal insect",
            "Cochlea",
            "Cock fighting",
            "Cocked hat",
            "Cockroaches",
            "Coconut palm",
            "Coffee",
            "Coffee Drinking",
            "Coffin",
            "Cohoes",
            "Coins",
            "Coins, Danish",
            "Coins, Roman",
            "Cold Spring",
            "Cold War, 1945-1989",
            "Coldwater, MI",
            "Coléoptères",
            "Coliseum",
            "Collages",
            "Collection and preservation",
            "Collections privées",
            "Collector",
            "Collectors and collecting",
            "Collectors' marks",
            "Collembola",
            "Collinsia verna",
            "Colonel",
            "Colonial America",
            "Colonial Era (1607-1776)",
            "Colonial Government Official",
            "Colonial Governor",
            "Colonial Graveyard",
            "Colonial Officer",
            "Colonial Statesman",
            "Colonial influence",
            "Colonial period, ca. 1600-1775",
            "Colonies",
            "Colonization movement",
            "Colonizer",
            "Colonnade",
            "Color",
            "Color in art",
            "Color in nature",
            "Color in the textile industries",
            "Color printing",
            "Color prints",
            "Color prints, Japanese",
            "Color separation",
            "Colorado Springs",
            "Colorado potato beetle",
            "Colorism",
            "Colossi del Quirinale",
            "Colossi of Memnon",
            "Colportage, subscription trade, etc",
            "Columbellidae",
            "Columbia (Symbolic character)",
            "Columbia Bridge",
            "Columbia Hill",
            "Columbia River",
            "Columbia Teacher's College",
            "Columbia clematis",
            "Columbia lily",
            "Columbus \"Discovering \" America",
            "Column",
            "Columnist",
            "Columns",
            "Columns (architectural elements)",
            "Comandra livida",
            "Comandra pallida",
            "Combat patrols",
            "Combs",
            "Combustion",
            "Combustion, Spontaneous human",
            "Combustion, Theory of",
            "Comedian",
            "Comedy",
            "Comedy (Theatre)",
            "Comets",
            "Comic books, strips, etc",
            "Comic prints",
            "Comics",
            "Comitia Americana",
            "Commemorative",
            "Commemorative postage stamps",
            "Commensalism",
            "Commentator",
            "Commercial",
            "Commercial Furnishings",
            "Commercial law",
            "Commercial products",
            "Commercial statistics",
            "Commissioner",
            "Commodities broker",
            "Commodore",
            "Common dolphin",
            "Common pitcherplant",
            "Communication",
            "Communication, letter writing",
            "Communication, magazines",
            "Communication, newspapers",
            "Communications",
            "Communion",
            "Communities",
            "Community slab",
            "Company president",
            "Comparative linguistics",
            "Compass",
            "Compasses (Direction indicators)",
            "Competitions",
            "Composer",
            "Composers",
            "Composers (Musicians)",
            "Compositae",
            "Composition and exercises",
            "Compound eye",
            "Compton Castle",
            "Comptroller",
            "Computer technology",
            "Computers & Business Machines",
            "Concerts",
            "Concessions de terres",
            "Conch",
            "Conch shell",
            "Conchologist",
            "Conchologists",
            "Concord",
            "Concrete houses",
            "Concubine",
            "Condensed milk",
            "Conduct of life",
            "Conductor's baton",
            "Conductors (Musicians)",
            "Coney Island",
            "Confections",
            "Confederate First Lady",
            "Confederate Official",
            "Confederate President",
            "Confederate Secretary of War",
            "Confederate Vice President",
            "Confrontation",
            "Confucius",
            "Congo (Democratic Republic)",
            "Congregational churches",
            "Congress Park Ramble",
            "Congresses and conventions",
            "Congressional Gold Medal",
            "Congressmen",
            "Conic sections",
            "Conidae",
            "Conifers",
            "Coniocybomycetes",
            "Conjoined twins",
            "Conjugatae",
            "Connecticut River",
            "Connecticut State Capitol",
            "Connective tissues",
            "Connoisseur",
            "Conoidasida",
            "Conopholis americana",
            "Conradina verticillata",
            "Conservation and restoration",
            "Conservationist",
            "Conspirator",
            "Constantinople",
            "Construction",
            "Construction projects",
            "Consul",
            "Consumption",
            "Containers",
            "Contemporary (1990-present)",
            "Continental Arms",
            "Continental congressman",
            "Contortionist",
            "Contract bridge",
            "Contractor",
            "Control",
            "Controversial literature",
            "Conus",
            "Convent",
            "Convent founder",
            "Convent of Elijah",
            "Convent of Las Monjas",
            "Conversation",
            "Conversion",
            "Conway River",
            "Cook",
            "Cook City",
            "Cookbook",
            "Cooking",
            "Cooking (Eggs)",
            "Cooking (Seafood)",
            "Cooking (Shellfish)",
            "Cooking (Vegetables)",
            "Cooking, American",
            "Cooking, English",
            "Cookware",
            "Coonskin cap",
            "Cooper",
            "Copenhagen porcelain",
            "Copepoda",
            "Copp Collection",
            "Copper enameling",
            "Copper implements",
            "Copper mines and mining",
            "Copper-green lead glaze",
            "Copperfield, David (Literary character)",
            "Copy",
            "Copybooks",
            "Copying",
            "Coquillages",
            "Coral reefs and islands",
            "Corals",
            "Corals, Fossil",
            "Corathorhiza corallorhiza",
            "Coraux",
            "Corbicula fluminea",
            "Corcoran Gallery of Art",
            "Cordage industry",
            "Cordelia",
            "Corduliidae",
            "Corfu",
            "Corfu Harbor",
            "Corinito",
            "Cormorant",
            "Corn",
            "Corn Dance",
            "Corn cob pipe",
            "Cornish",
            "Cornstarch",
            "Cornucopia",
            "Cornus canadensis",
            "Cornus florida",
            "Cornus nuttallii",
            "Cornwall",
            "Cornwallis",
            "Corona Austrina",
            "Coronation",
            "Coronation of Mary",
            "Coronations",
            "Corpse",
            "Correspondence",
            "Correspondent",
            "Corsage",
            "Cortina",
            "Corvidae",
            "Corvus",
            "Corwin (Revenue-cutter)",
            "Corylophidae",
            "Corylus rostrata",
            "Coryphantha arizonica",
            "Cos Cob Harbor",
            "Cosmetics",
            "Cosmography",
            "Cosmology",
            "Cosmology, Medieval",
            "Cost of operation",
            "Costume",
            "Costume accessories",
            "Costume and dress",
            "Costume designer",
            "Costume, French",
            "Coteau des Prairies",
            "Cottidae",
            "Cotton",
            "Cotton States Exposition",
            "Cotton growing",
            "Cotton manufacture",
            "Cotton plantations",
            "Cottonwood tree",
            "Couch",
            "Couches",
            "Couching",
            "Cougar",
            "Council",
            "Counters",
            "Country (Music)",
            "Country dancing",
            "Country homes",
            "County Clerk",
            "Couple",
            "Couples",
            "Cour du Corbeau",
            "Cour du Dragon",
            "Courage",
            "Court",
            "Court Street",
            "Court and courtiers",
            "Court clerk",
            "Courtesan",
            "Courtesans",
            "Courtesans in art",
            "Courtesy",
            "Courthouse",
            "Courtier",
            "Courting",
            "Courtroom",
            "Courts",
            "Courtship",
            "Covered wagon",
            "Covers & Letters",
            "Covers (Philately)",
            "Cowania stanshuriana",
            "Cowboy hat",
            "Cowboys",
            "Cowing and Co.",
            "Cowpens, Battle of (South Carolina : 1781)",
            "Cowries",
            "Cows",
            "Cox",
            "Coyote",
            "Coypu",
            "Crabs",
            "Crabs, Fossil",
            "Cracca virginiana",
            "Cradle",
            "Cradleboard",
            "Crafts",
            "Crafts and Trades",
            "Craftsmanship",
            "Cranberry Island",
            "Cranberrybush",
            "Crane",
            "Crane flies",
            "Crane-fly orchis",
            "Cranes (Birds)",
            "Cranes (Zoology)",
            "Crangonidae",
            "Craniology",
            "Crassulaceae",
            "Crataegus coccinea",
            "Crate",
            "Crater",
            "Crawford Notch",
            "Crayfish",
            "Cream violet",
            "Creek War, 1813-1814",
            "Creeping juniper",
            "Cremation",
            "Crepidula",
            "Crepis elegans",
            "Crescents (shapes)",
            "Crested iris",
            "Cretaceous Geologic Period",
            "Criccieth",
            "Cricket",
            "Crickets",
            "Crime",
            "Criminal",
            "Criminal justice, Administration of",
            "Criminal law",
            "Criminals",
            "Crinoidea",
            "Crinoidea, Fossil",
            "Cripple Creek",
            "Critic",
            "Criticism",
            "Crocheting",
            "Crocodiles",
            "Crocus",
            "Cromlech",
            "Cromolithography",
            "Crops and climate",
            "Croquet",
            "Cross",
            "Cross Timbers",
            "Cross, Sign of the",
            "Cross-stitch",
            "Crosses",
            "Crosses (objects)",
            "Crossvine",
            "Crow",
            "Crow Creek",
            "Crowberry",
            "Crowd",
            "Crowds",
            "Crown",
            "Crowns",
            "Crowns (costume components)",
            "Crowns (headdresses)",
            "Crowpoison",
            "Crows",
            "Crucifix",
            "Crucifixion",
            "Cruelty",
            "Crusaders Gate",
            "Crusades",
            "Crustacea",
            "Crustacea (Heller)",
            "Crustacea, Fossil",
            "Crustaceans",
            "Crustacës",
            "Crutch",
            "Cryptobranchus Japonicus",
            "Cryptocephalus",
            "Cryptogamae",
            "Cryptogames",
            "Cryptogams",
            "Cryptomeria",
            "Cryptostomata",
            "Crystallography",
            "Crystals",
            "Ctenophora",
            "Cubism",
            "Cubomedusae",
            "Cubozoa",
            "Cuckoo",
            "Cuckoos",
            "Cucujidae",
            "Cucumber cactus",
            "Cucumber tree",
            "Cucumbers",
            "Cuernavaca",
            "Cufflinks",
            "Culinary Arts",
            "Culinary Equipment",
            "Cultural critic",
            "Cultural organization administrator",
            "Cumacea",
            "Cumae",
            "Cumberland Mountains",
            "Cuneiform inscriptions",
            "Cup",
            "Cupid",
            "Cupressus macrocarpa",
            "Curators",
            "Curculionidae",
            "Curculonidae",
            "Curimatidae",
            "Curiosities and wonders",
            "Curiosity",
            "Curly clematis",
            "Curmillon",
            "Currant",
            "Currecanti Needle",
            "Currier & Ives",
            "Cursive script",
            "Cursive writing",
            "Curtain",
            "Curtiss Jenny airplane",
            "Curtiss No. 1 (Airplane)",
            "Custom house",
            "Customary law",
            "Customers & Commerce",
            "Customs Agent",
            "Cut toothwort",
            "Cut velvet",
            "Cut-leaf fleabane",
            "Cut-out",
            "Cut-out craft",
            "Cutler",
            "Cuttlefish",
            "Cuyamaca Mountains",
            "Cvil Engineering",
            "Cvil Rights",
            "Cyanobacteria",
            "Cycadeoideopsida",
            "Cycadopsida",
            "Cycling",
            "Cycling for women",
            "Cyclists",
            "Cyclophoridae",
            "Cyclops",
            "Cyclostomata",
            "Cymbal",
            "Cyperacea",
            "Cyperaceae",
            "Cypraea",
            "Cypress",
            "Cypress tree",
            "Cypress vine",
            "Cypridedium acaule",
            "Cyprinidae",
            "Cyprinidae, Fossil",
            "Cypriniformes",
            "Cyprinodontidae",
            "Cyprinus",
            "Cypripedium arietinum",
            "Cypripedium montanum",
            "Cypripedium parviflorum",
            "Cypripedium passerinum",
            "Cypripedium reginae",
            "Cyrtopodium punctatum",
            "Cystoidea",
            "Cystoporata",
            "Cytherea Lamarck",
            "Cytherea bulbosa",
            "DESCRIPCIONES Y VIAJES",
            "DJs (Musicians)",
            "Dacca",
            "Dachshunds",
            "Daffodils",
            "Dagger",
            "Daggers & swords",
            "Daguerreotypist",
            "Dahlia",
            "Daikokuten (Japanese deity)",
            "Daily Life",
            "Dairy products industry",
            "Daisies",
            "Daisy",
            "Dalmatian dog",
            "Damask",
            "Damnation of Theron Ware or Illumination",
            "Dams",
            "Damselflies",
            "Danae? (Greek mythology)",
            "Dance",
            "Dance Instructor",
            "Dance cards",
            "Dance notation",
            "Dance of death",
            "Dance orchestra music",
            "Dance orchestra music, Arranged",
            "Dancer",
            "Dancers",
            "Dandelion",
            "Danger",
            "Daniel (Biblical figure)",
            "Daoism",
            "Daoist Immortals",
            "Daphne (Greek deity)",
            "Darbar",
            "Daredevils",
            "Darlingtonia",
            "Dasharatha",
            "Date palm",
            "Dating (Social customs)",
            "Daudebardia",
            "Daughter of US President",
            "Dawn",
            "Day",
            "Daylily",
            "De Vinne Press",
            "DeAutremont train robbery, 1923",
            "Dead animals",
            "Dealer",
            "Dealers (Retail trade)",
            "Dean",
            "Death",
            "Death (Biology)",
            "Death camas",
            "Death in art",
            "Death mask",
            "Death valley sage",
            "Decanter",
            "Decapoda",
            "Decapoda (Crustacea)",
            "Decapoda (Crustacea), Fossil",
            "Decapoda (Crustecea)",
            "Deception",
            "Deck rail",
            "Declaration of Independence (United States)",
            "Declaration of Independence, Signing of",
            "Declination (Astronomy)",
            "Decolonization",
            "Decomposition (Chemistry)",
            "Decoration and ornament",
            "Decoration and ornament, Ancient",
            "Decoration and ornament, Jacobean",
            "Decoration and ornament, Medieval",
            "Decorations",
            "Decorative arts, Rococo",
            "Decoys (Hunting)",
            "Deep diving",
            "Deep-sea biology",
            "Deep-sea sounding",
            "Deep-sea temperature",
            "Deer hunting",
            "Deerberry",
            "Defeat",
            "Defense industries",
            "Delegate",
            "Delftware",
            "Delphinium",
            "Delphinium depauperatum",
            "Delphinium elongatum",
            "Delphinium nudicale",
            "Delphinium nuttallianum",
            "Delphinium scopulorum",
            "Delphinus",
            "Deluge",
            "Demeter (Greek deity)",
            "Demon",
            "Demonology",
            "Demons",
            "Demospongea",
            "Demospongiae",
            "Denderah",
            "Dendrocoelum",
            "Dendromecon rigidum",
            "Dentalium",
            "Dentaria laciniata",
            "Dentistry",
            "Dentists",
            "Dentition",
            "Depression",
            "Descrição",
            "Description and travel",
            "Desert biology",
            "Desert mariposa",
            "Deserts",
            "Design",
            "Design and construction",
            "Designating Flags",
            "Desks",
            "Desmidaceae",
            "Desmidiaceae",
            "Desperado",
            "Detail",
            "Details",
            "Detective",
            "Determination",
            "Developer",
            "Development of the Industrial United States",
            "Developmental biology",
            "Devi (Hindu deity)",
            "Devices (Heraldry)",
            "Devil",
            "Devil's club",
            "Dewberry vine",
            "Dexter",
            "Découverte et exploration",
            "Dge-lugs-pa (Sect)",
            "Dharmacakra",
            "Dhayanibuddha",
            "Dhritarastra",
            "Dialect literature, American",
            "Dialects",
            "Dialogues",
            "Diamond Ice and Coal Company",
            "Diamond cutting",
            "Diamond mines and mining",
            "Diamonds",
            "Diana (Roman deity)",
            "Diaptomus",
            "Diaries (form)",
            "Diarist",
            "Diatoms",
            "Dick Swiveller",
            "Dicotelydonae",
            "Dicotyeldonae",
            "Dicotyledonae",
            "Dicotyledonae (basal)",
            "Dicotyledoneae",
            "Dicotyledons",
            "Dictator",
            "Dictionnaires franc̈ais",
            "Didactic poetry",
            "Dido (Legendary character)",
            "Dierkunde",
            "Diesinker",
            "Differential equations",
            "Digestive organs",
            "Dime novels, American",
            "Dimorphism (Animals)",
            "Dining room",
            "Dining rooms",
            "Dinners and dining",
            "Dinosaurs",
            "Dionaea muscipula",
            "Dionysus (Greek deity)",
            "Diopsis",
            "Diospyros virginiana",
            "Diplacus longiflorus",
            "Diplaucus puniceus",
            "Diplomacy",
            "Diplomatic Agent",
            "Diplomatic relations",
            "Diplomats",
            "Diplopoda",
            "Dipnotetrapodomorpha",
            "Diptera",
            "Diptera, Fossil",
            "Diptères",
            "Directoire style",
            "Disasters",
            "Disciple",
            "Disco (Music)",
            "Discoboli",
            "Discoveries in geography",
            "Discovery Dance",
            "Discovery and exploration",
            "Discovery and exploration, German",
            "Discovery of United States",
            "Discrimination",
            "Discus Thrower",
            "Disease and hygiene",
            "Diseases",
            "Diseases and pests",
            "Dish",
            "Dishes",
            "Dispensaries",
            "Dispersal",
            "Display Gardens",
            "Disporum hookeri",
            "Disporum trachycarpum",
            "Dissection",
            "Dissertations, Academic",
            "Distillation",
            "Distillation apparatus",
            "Distiller",
            "Distilleries",
            "Distinction",
            "Distinguished Service Medal",
            "Distomum macrostomum",
            "District Attorney",
            "Divan",
            "Divination",
            "Diving",
            "Division",
            "Docotyledonae",
            "Dodecatheon hendersonii",
            "Dodecatheon meadia",
            "Dodecatheon pauciflorum",
            "Dodo",
            "Dog Dance",
            "Dog Feast",
            "Dog-fennel",
            "Dogbane",
            "Doge Dodolo",
            "Doge's Palace",
            "Dogfish",
            "Dogs",
            "Dogwood",
            "Dolichopodidae",
            "Dollar sign",
            "Dolls",
            "Dolphin",
            "Dolphins",
            "Dome",
            "Domestic",
            "Domestic animals",
            "Domestic life",
            "Domestic slave trade",
            "Domestic worker",
            "Domestication",
            "Dominy",
            "Don Juan (Legendary character)",
            "Don Quixote (Fictitious character)",
            "Donacidae",
            "Donkey",
            "Donna Anna",
            "Door fittings",
            "Door knobs",
            "Doors",
            "Doorstops",
            "Doorway",
            "Doorways",
            "Dormice",
            "Dothideomycetes",
            "Double basses",
            "Double bladderpod",
            "Douglas fir",
            "Douglas honeysuckle",
            "Dove",
            "Dovecotes",
            "Downy pinxterbloom",
            "Dracula, Count (Fictitious character)",
            "Drafting & Writing Implements",
            "Drafting board",
            "Drafting, Engineering",
            "Draftsman",
            "Dragging",
            "Dragon",
            "Dragonflies",
            "Dragons",
            "Drama",
            "Drama (Theatre)",
            "Draparnaud collection",
            "Drape",
            "Draperies",
            "Drawing",
            "Drawings",
            "Drawn-work",
            "Dream",
            "Dreaming",
            "Dreams",
            "Dredges",
            "Dredging",
            "Dredging (Biology)",
            "Dreissena",
            "Dreissenidae, Fossil",
            "Dresden porcelain",
            "Dress accessories",
            "Dress up",
            "Dressage",
            "Dresser",
            "Dressing room",
            "Dressmaker",
            "Dressmaking",
            "Driftway",
            "Drinking cups",
            "Drinking customs",
            "Drinking vessel",
            "Drinking vessels",
            "Driving of horse-drawn vehicles",
            "Droit commercial",
            "Drosera rotundifolia",
            "Drought",
            "Drowning",
            "Druckschrift",
            "Drug use",
            "Drummer",
            "Drummond pitcherplant",
            "Drummond willow",
            "Drums (Membranophones)",
            "Drums (Musical instruments)",
            "Dry goods merchant",
            "Dry-goods",
            "Dryad",
            "Dryas drummondii",
            "Dryas octopetala",
            "Dubuque",
            "Duchess",
            "Duck (Textile)",
            "Duck shooting",
            "Ducks",
            "Duke",
            "Duke of Urbino",
            "Dummies (Bookselling)",
            "Dumontia filiformis",
            "Dunrobin",
            "Duplicate whist",
            "Durga? (Hindu deity)",
            "Durham Cathedral",
            "Dusk",
            "Dutch colonialism",
            "Dutchman's breeches",
            "Dutchman's pipe",
            "Dwarf fruit trees",
            "Dwarfs",
            "Dwellings",
            "Dyes and dyeing",
            "Dynamics",
            "Dynasty 18 (ca. 1539 - 1295 BCE)",
            "Dytiscidae",
            "Dytiscidœ",
            "Dßecouvertes d'or",
            "EXPEDICIONES CIENTIFICAS",
            "Eagle (Airship)",
            "Eagle Hotel",
            "Eagles",
            "Ear",
            "Early American History",
            "Early Nation's Period (1776-1800)",
            "Early printed books",
            "Earth",
            "Earth Sciences",
            "Earth scientists",
            "Earthquakes",
            "Earwigs",
            "East Africa",
            "Easter",
            "Eastern Ganga dynasty (700 - 1299)",
            "Eastern Wei dynasty (534 - 550)",
            "Eastern Zhou dynasty (770 - 221 BCE)",
            "Ebisu (Japanese deity)",
            "Ecclesiastical Wares",
            "Echinidae",
            "Echinocereus viridiflorus",
            "Echinodermata",
            "Echinoderms",
            "Echinoidea",
            "Echinothuriidae",
            "Echinozoa",
            "Echiura",
            "Eclipses",
            "Ecology",
            "Economics",
            "Ectocarpales",
            "Edged Weapons",
            "Editorial writer",
            "Editors",
            "Edo period",
            "Edo period, Japan, (1600 - 1868)",
            "Edo period, Japan, 1600-1868",
            "Edrioasteroidea",
            "Education",
            "Education and Scholarship",
            "Education, College",
            "Educational organization",
            "Educators",
            "Eels",
            "Eggs",
            "Eggshells",
            "Egrets",
            "Egyptologists",
            "Egyptology",
            "Eight Views of Xiao-Xiang",
            "El Candelaria",
            "El Khadin",
            "El Tih",
            "Elaeagnaceae",
            "Elaine of Astolat (Legendary character)",
            "Elbow-stones",
            "Elder",
            "Elder tree",
            "Elderberry",
            "Elections",
            "Electric apparatus and appliances",
            "Electric conductivity",
            "Electric currents",
            "Electric fishes",
            "Electric industries",
            "Electric machinery",
            "Electric power",
            "Electric power supplies to apparatus",
            "Electrical engineer",
            "Electrical engineering",
            "Electricity",
            "Electrochemistry",
            "Electromagnets",
            "Electronic apparatus and appliances",
            "Electroplating",
            "Electrostatic apparatus and appliances",
            "Electrostatics",
            "Elephant hunting",
            "Elephanthead",
            "Elephants",
            "Elevators",
            "Eleven Thousand Virgins (Legendary saints)",
            "Eliot",
            "Elizah",
            "Elkslip",
            "Ellipsographs",
            "Ellis Island",
            "Ellis River",
            "Ellobiidae",
            "Elm",
            "Elm House",
            "Elm tree",
            "Emancipation",
            "Emancipation Proclamation",
            "Embalming",
            "Embezzlement",
            "Emblems",
            "Embroidered Pictures",
            "Embroidery",
            "Embryo, Nonmammalian",
            "Embryology",
            "Emigration and immigration",
            "Emissary",
            "Emotions",
            "Empetrum nigrum",
            "Empididae",
            "Empire style (Decoration and ornament)",
            "Employees",
            "Employment",
            "Empress",
            "Emys",
            "Enamel",
            "Enamel and enameling",
            "Encyclopedias and dictionaries",
            "Endymion (Greek mythology)",
            "Enema",
            "Energy & Power",
            "Engagement between Bonhomme Richard and Serapis",
            "Engineering",
            "Engineers",
            "Engines",
            "English West Indian Expedition, 1795-1796",
            "English sparrow",
            "Engravers",
            "Engraving",
            "Engraving tool",
            "Engraving, Colonial",
            "Enquêtes scientifiques",
            "Enshū school",
            "Enshū-ryū school",
            "Enslaved person",
            "Entertainers",
            "Entomologists",
            "Entomology",
            "Entomostraca",
            "Entomostraca, Fossil",
            "Entrepreneurship",
            "Envelopes (Stationery)",
            "Epicampes",
            "Epidermis",
            "Epilobium",
            "Epitaphs",
            "Equine",
            "Equipment",
            "Equisetopsida",
            "Equisetum",
            "Equistopsida",
            "Equuleus",
            "Eraus",
            "Eremalche rotundifolia",
            "Ericaceae",
            "Ericas",
            "Erie railroad",
            "Erigenia bulbosa",
            "Erigeron acris",
            "Erigeron aureus",
            "Erigeron caespitosus",
            "Erigeron compositus",
            "Erigeron compositus nudus",
            "Erigeron jucundus",
            "Erigeron lanatus",
            "Erigeron macranthus",
            "Erigeron salsuginosus",
            "Erigeron speciosus",
            "Erigeron unalaschcensis",
            "Eriophorum angustifolium",
            "Eriophorum chamissonis",
            "Eritichum elongatum",
            "Erligang period, Early Shang dynasty (ca. 1600 - ca. 1400 BCE)",
            "Ernest K. Ackerman Collection of U.S. Proofs",
            "Eros",
            "Erotylidae",
            "Erysimum wheeleri",
            "Erythronium albidum",
            "Erythronium grandiflorum",
            "Erythronium montanum",
            "Eschatology",
            "Eschscholtzia californica",
            "Eschscholtzia glyptosperma",
            "Eschscholtzia mexicana",
            "Escuintla",
            "Escutcheon",
            "Esk River",
            "Essayist",
            "Essays and proofs (Philately)",
            "Essen",
            "Essences and essential oils",
            "Essex County",
            "Estes Park",
            "Estheria, Fossil",
            "Estuaries",
            "Etaples",
            "Etcher",
            "Etchers",
            "Etching",
            "Etching, American",
            "Etching, British",
            "Eternity",
            "Ethics",
            "Ethnic Groups",
            "Ethnic costume",
            "Ethnic relations",
            "Ethnobotany",
            "Ethnological museums and collections",
            "Ethnologist",
            "Ethnology",
            "Ethnozoology",
            "Etiquette",
            "Etiquette for men",
            "Eton College",
            "Etruscan influences",
            "Eucalyptus",
            "Euclid's Elements",
            "Eucnemidae",
            "Eudrilidae",
            "Eulimidae",
            "Euonymus americanus",
            "Eupatorium urticaefolium",
            "Euphausiacea",
            "Euphorbiales",
            "Eurasian red squirrel",
            "Europa",
            "European Art",
            "European bison",
            "Eurotatoria",
            "Eurotiomycetes",
            "Eurydice",
            "Eurypterida",
            "Eustoma russelianum",
            "Eutardigrada",
            "Evangeline",
            "Evangelist",
            "Evangelists",
            "Eve (Biblical figure)",
            "Evening",
            "Evening primrose",
            "Evergreen saxifrage",
            "Evergreen tree",
            "Evergreens",
            "Evian",
            "Evil",
            "Evolution",
            "Evolution (Biology)",
            "Examination",
            "Excavations (Archaeology)",
            "Excerpts",
            "Excerpts, Arranged",
            "Excretion",
            "Excretory organs",
            "Execution",
            "Executive",
            "Executive Clerk of White House",
            "Executive departments",
            "Exercise",
            "Exercise therapy",
            "Exhibit stands",
            "Exhibition buildings",
            "Exhibition catalogs",
            "Exhibition designer",
            "Exhibitions",
            "Exhibitions, San Diego, 1915-16",
            "Exorcism",
            "Expeditions",
            "Experiments",
            "Expéditions scientifiques",
            "Exploration",
            "Exploration and Discovery",
            "Explorations and surveys",
            "Explorers",
            "Exploring expeditions",
            "Explosions",
            "Exposition",
            "Expositions",
            "Exterior with Interior View",
            "Extinct animals",
            "Extinct birds",
            "Extinct cities",
            "Extinct mammals",
            "Eye Image",
            "Eye wear",
            "Eyeglasses",
            "Écriture",
            "Étude et enseignement",
            "FBI Director",
            "Fables",
            "Fables, Hottentot",
            "Fabric vendor",
            "Face",
            "Face in art",
            "Faces",
            "Facial Hair",
            "Facial expression",
            "Facsimiles",
            "Factory",
            "Factory inspection",
            "Faience",
            "Fair",
            "Fairies",
            "Fairmount",
            "Fairmount Park",
            "Fairs",
            "Fairy",
            "Fairy Glen",
            "Fairy costume",
            "Fairy tales",
            "Fairy-bells",
            "Faith",
            "Falcon",
            "Falconidae",
            "Falconiformes",
            "Falconry",
            "Falcons",
            "Falls of Minnehaha",
            "Falls of Saint Anthony",
            "Falls of Tivoli",
            "Falls of the Michatoya",
            "Falls of the Oroyo Delia",
            "Fallugia paradoxa",
            "False Wicheta",
            "False dandelion",
            "False indigo",
            "False locoweed",
            "False solomon's-seal",
            "Fame's Penny Trumpet",
            "Famiies",
            "Family",
            "Family portrait",
            "Fan bearers",
            "Fan painting, Japanese",
            "Fancy Girl trade",
            "Fancy work",
            "Fans",
            "Fans (Accessories)",
            "Fantasia",
            "Fantastic aircraft",
            "Fantastic architecture",
            "Fantasy",
            "Fantasy fiction",
            "Far East",
            "Fares",
            "Farewell-to-spring",
            "Farewells",
            "Faries in art",
            "Farm machine",
            "Farmer Brown",
            "Farmers",
            "Farmhouse",
            "Farms",
            "Fasces",
            "Fasciolariidae",
            "Fashion",
            "Fashion merchandising",
            "Fates",
            "Father and child",
            "Fatherhood",
            "Fatimid period (909 - 1171)",
            "Faun",
            "Faune marine",
            "Faunus",
            "Faust",
            "Fear",
            "Feast day",
            "Feasting",
            "Feather",
            "Feather-wing beetles",
            "Feathers",
            "Federal Hall",
            "Federal Reserve Chairman",
            "Federal building",
            "Fedora",
            "Felidae",
            "Female and child",
            "Female use",
            "Feminine names",
            "Feminism",
            "Feminist",
            "Femmes",
            "Femur",
            "Fence",
            "Fencer",
            "Fences",
            "Fencing",
            "Fermentation",
            "Ferneries (greenhouses)",
            "Ferns",
            "Ferns, Fossil",
            "Ferns, Ornamental",
            "Ferrara",
            "Ferris wheels",
            "Ferry",
            "Fertilization of plants",
            "Fertilization of plants by insects",
            "Fescue",
            "Festival of the Felibres",
            "Festivals",
            "Festoons",
            "Fetal presentation",
            "Fetishism",
            "Fez",
            "Fichtelite",
            "Fiction",
            "Ficus (Plants)",
            "Field crops",
            "Field violet",
            "Fierasferidae",
            "Fiesole",
            "Fiesole Cathredral",
            "Fifth Avenue Hotel",
            "Fifty-Seventh Street",
            "Fig",
            "Fighter pilots",
            "Fighter plane combat",
            "Fighter planes",
            "Figure female",
            "Figure group",
            "Figure male",
            "Figure painting",
            "Figure skating",
            "Figure(s) in exterior",
            "Figureheads of ships",
            "Filices",
            "Filigree",
            "Finance",
            "Finance and Investments",
            "Financier",
            "Finches",
            "Fins (Anatomy)",
            "Fire",
            "Fire Chief",
            "Fire Dance",
            "Fire Engine Plates",
            "Fire Fighting",
            "Fire Hats",
            "Fire Helmets",
            "Fire Island",
            "Fire Marks",
            "Fire axes",
            "Fire engine",
            "Fire engines",
            "Fire hat",
            "Fire hats",
            "Fire insurance",
            "Fire penstemon",
            "Fire pink",
            "Fire prevention",
            "Fire station",
            "Firearms",
            "Firefighter",
            "Firefighters",
            "Firefighting Capes",
            "Firefighting Collection",
            "Fireflies",
            "Firefly",
            "Fireman",
            "Fireplace",
            "Fireplaces",
            "Fireweed",
            "Firewood",
            "Fireworks",
            "First Lady of US",
            "First Presbyterian Church",
            "First communion",
            "First contact with other peoples",
            "First ladies",
            "Fish as food",
            "Fish culture",
            "Fish hatcheries",
            "Fish trade",
            "Fisher",
            "Fisher's Pond",
            "Fisheries",
            "Fisherman",
            "Fishery law and legislation",
            "Fishery products",
            "Fishery research stations",
            "Fishes",
            "Fishes &z Caucasus, Northern (R.S.F.S.R.)",
            "Fishes in art",
            "Fishes, Fossil",
            "Fishing",
            "Fishing Pole",
            "Fishing boat",
            "Fishing nets",
            "Fishing tackle",
            "Fishmonger",
            "Fishways",
            "Fissurellidae",
            "Five Dynasties period (907 - 960)",
            "Flags",
            "Flame azalea",
            "Flaming pearl",
            "Flamingo",
            "Flandre",
            "Flask",
            "Flat-footed flies",
            "Flatfish fisheries",
            "Flatfishes",
            "Fleabane",
            "Fleur-de-lis",
            "Fleurie",
            "Flies as carriers of contagion",
            "Flies as carriers of disease",
            "Flight",
            "Flight of Jesus Christ into Egypt",
            "Flightless birds",
            "Flights",
            "Flint",
            "Floods",
            "Floor",
            "Floral Accessories",
            "Floral decorations",
            "Floral designers",
            "Floral frames",
            "Florence",
            "Floriculture",
            "Florideophyceae",
            "Florist",
            "Flower arrangement",
            "Flower arrangement, Japanese",
            "Flower arranging",
            "Flower gardening",
            "Flower language",
            "Flowering dogwood",
            "Flowers",
            "Flowers in art",
            "Flowers in literature",
            "Floyd",
            "Floyd S. Leach Collection",
            "Fluid mechanics",
            "Flute",
            "Flutes",
            "Flutist",
            "Fly whisk",
            "Flycatcher",
            "Flying Dutchman",
            "Flying-machines",
            "Fob",
            "Fog",
            "Foliage",
            "Folk (Music)",
            "Folk art",
            "Folk literature",
            "Folk music",
            "Folk songs",
            "Folk songs, English",
            "Folk tales",
            "Folklife",
            "Folklore",
            "Folklore of birds",
            "Folklore, Scottish",
            "Folklorist",
            "Folly or Saintliness",
            "Fontainbleau Forest",
            "Fontaine des Sirenes",
            "Food",
            "Food & Agriculture",
            "Food Culture",
            "Food Processing",
            "Food crops",
            "Food habits",
            "Food law and legislation",
            "Food of animal origin",
            "Foodstuff",
            "Foot",
            "Foot malady",
            "Football",
            "Footbridge",
            "Footprints, Fossil",
            "Footstool",
            "Footwear",
            "Forage plants",
            "Foraminifera incertae sedis",
            "Foraminiferida",
            "Force and energy",
            "Foreign",
            "Foreign Leader",
            "Foreign mail",
            "Foreign relations",
            "Foreigner",
            "Forest anemone",
            "Forest animals",
            "Forest ecology",
            "Forest insects",
            "Forest products industry",
            "Forester",
            "Forestry law and legislation",
            "Forests",
            "Forests and forestry",
            "Forficulidae",
            "Forger",
            "Forgeries",
            "Forgery",
            "Forgery of antiquities",
            "Forget-me-not",
            "Formal dress",
            "Formations (Geology)",
            "Forms (Law)",
            "Formulas, recipes, etc",
            "Fort",
            "Fort George Island",
            "Fort Hell",
            "Fort Keogh",
            "Fort Montgomery",
            "Fort Pierre",
            "Fort Point",
            "Fort San Juan de Ulua",
            "Fort Sedgwick",
            "Fort Union",
            "Fortification",
            "Fortitude",
            "Fortress",
            "Fortune",
            "Fortune teller",
            "Forty-niner costume",
            "Forum",
            "Fossil hominids",
            "Fossiles",
            "Fossils",
            "Foucault's pendulum",
            "Fougères",
            "Founder",
            "Founder of religious order",
            "Foundry",
            "Fountain",
            "Fountain of the Great Lakes",
            "Fountains",
            "Fouquieria splendens",
            "Fourth of July",
            "Fowling",
            "Foxes",
            "Foxglove penstemon",
            "Foxtrot (Dance)",
            "Foxtrots",
            "Foyer",
            "Fósseis",
            "Fractur",
            "Fragaria glauca",
            "Fragilariaceae",
            "Fragment",
            "Frame",
            "Frame components",
            "Francesco",
            "Franconia Mountains",
            "Franconia Notch",
            "Frank E. Brownell",
            "Franklin, Benjamin",
            "Fraternal Associations",
            "Fraternal organizations",
            "Fraternities",
            "Freda",
            "Frederic",
            "Frederick",
            "Free blacks",
            "Free communities of color",
            "Freedom",
            "Freemasons",
            "Freiburg",
            "Freight",
            "Freighter",
            "Fremontodendron mexicanum",
            "French and Indian War (United States : 1754-1763)",
            "French colonialism",
            "French colonies",
            "French dress",
            "French literature",
            "French wit and humor",
            "French wit and humor, Pictorial",
            "Fresh Pond",
            "Fresh Water",
            "Freshwater algae",
            "Freshwater animals",
            "Freshwater biology",
            "Freshwater fishes",
            "Freshwater invertebrates",
            "Freshwater microbiology",
            "Freshwater mussels",
            "Freshwater plankton",
            "Freshwater plants",
            "Friendship",
            "Frigate",
            "Fringed gentian",
            "Fringed parnassia",
            "Fringed polygala",
            "Fringetree",
            "Fritillaria biflora",
            "Fritillary",
            "Frogs",
            "Frontier and pioneer life",
            "Frontiersman",
            "Frontispiece",
            "Fruit",
            "Fruit seller",
            "Fruit trees",
            "Fruit-culture",
            "Fucus",
            "Fudo Myo-o",
            "Fuel",
            "Fugen",
            "Fugitive enslaved",
            "Fugitive slaves",
            "Fujiyama",
            "Fumigation",
            "Funeral",
            "Funeral rites and ceremonies",
            "Funeral rites and customs",
            "Funerary",
            "Funerary objects",
            "Funereal",
            "Fungi",
            "Fungus-of-immortality",
            "Funk (Music)",
            "Fur",
            "Fur farming",
            "Fur garments",
            "Fur trade",
            "Fur trader",
            "Fur trim",
            "Fur-bearing animals",
            "Furnishings",
            "Furniture maker",
            "Furniture, Mission",
            "Furniture, Neoclassical",
            "Furniture, equipment, etc",
            "Fusulinata",
            "Future, The",
            "Futurism (Art)",
            "Gabriel",
            "Gabriel (Archangel)",
            "Gadus",
            "Gadus merlangus",
            "Gafu",
            "Gaillardia aristata",
            "Gaines' Mill, Battle of, Va, 1862",
            "Galapagos tortoise",
            "Galatheidae",
            "Galium boreale",
            "Gall midges",
            "Gall wasps",
            "Galleries",
            "Galleries and museums",
            "Galliformes",
            "Galls (Botany)",
            "Galops",
            "Galveston",
            "Gambler",
            "Gambling",
            "Game and game-birds",
            "Game and game-birds in art",
            "Game player",
            "Game playing",
            "Game protection",
            "Games",
            "Gammaridae",
            "Gammarus",
            "Ganga",
            "Gansu ware",
            "Gap",
            "Garden of Eden",
            "Garden pests",
            "Garden rock",
            "Gardenia",
            "Gardening",
            "Gardens",
            "Gardens of Villa Palmieri",
            "Gardens, Chinese",
            "Gardens, English",
            "Gardiner's Bay",
            "Gardiner's River",
            "Gardon River",
            "Garland",
            "Garlic",
            "Garment cutting",
            "Garrison cap",
            "Garter snakes",
            "Gas companies",
            "Gas industry",
            "Gas station",
            "Gases",
            "Gasterpoda",
            "Gastropoda",
            "Gastropoda, Fossil",
            "Gate",
            "Gates",
            "Gathering",
            "Gauchos",
            "Gautama Buddha",
            "Gavel",
            "Gay liberation movement",
            "Gaya",
            "Gaylussacia brachycera",
            "Gays",
            "Gazebo",
            "Gazelle (Corvette)",
            "Gazetteers",
            "Gebel el Haridi",
            "Geckos",
            "Geese",
            "Geisha",
            "Gelsemium sempervirens",
            "Gem carving",
            "Gemini",
            "Gems",
            "Gender issues",
            "Genealogist",
            "Genealogy",
            "Geneaology",
            "General Calculation",
            "General Land Office",
            "Generals",
            "Generations, Alternating",
            "Generative organs",
            "Generative organs, Male",
            "Genesis",
            "Genetic aspects",
            "Geneva",
            "Genitourinary organs",
            "Genoa",
            "Genre painter",
            "Genre painting",
            "Gentian",
            "Gentiana acuta",
            "Gentiana affinis",
            "Gentiana andrewskii",
            "Gentiana crinita",
            "Gentiana elegana",
            "Gentiana glauca",
            "Gentiana holopetala",
            "Gentiana macounii",
            "Gentiana newberri",
            "Gentiana porphyrio",
            "Gentiana propingua",
            "Gentiana prostrata",
            "Gentiana saponaria",
            "Gentianacease sabbalia angularis",
            "Gentianales",
            "Gentianeceae",
            "Gentry",
            "Geodesy",
            "Geografia do rio de janeiro",
            "Geographer",
            "Geographical distribution",
            "Geographical positions",
            "Geography",
            "Geography, Ancient",
            "Geological museums",
            "Geological specimens",
            "Geologist",
            "Geologists",
            "Geology",
            "Geology, Economic",
            "Geology, Stratigraphic",
            "Geology, Structural",
            "Geomagnetism",
            "Geometric",
            "Geometric function theory",
            "Geometric motif",
            "Geometrical drawing",
            "Geometrical drawings",
            "Geometrical optics",
            "Geometridae",
            "Geometry, Non-Euclidean",
            "Geophysics",
            "George Inn",
            "George Mason Elementary Walkout",
            "George Washington's Farewell Address",
            "Georgetown",
            "Geranium",
            "Geranium viscosissimum",
            "German Building",
            "German periodicals",
            "German wit and humor",
            "Germination",
            "Geschichte",
            "Gesture",
            "Gettysburg",
            "Gettysburg Campaign, 1863",
            "Geyser",
            "Ghent",
            "Ghost",
            "Ghostpipe",
            "Giant",
            "Giant arborvitae",
            "Giant helleborine",
            "Giant red paintbrush",
            "Giant trillium",
            "Gibbon River",
            "Gibier",
            "Gibraltar",
            "Gift books",
            "Gift giving",
            "Gila monster",
            "Gila monsters",
            "Gilding",
            "Gilia aggregata",
            "Gilia arizonica",
            "Gilia linanthus parviflorus",
            "Ginevra",
            "Ginkgoopsida",
            "Girl",
            "Girl Scouts",
            "Girls",
            "Giudecca Canal",
            "Given",
            "Glacial epoch",
            "Glacier",
            "Glacier lily",
            "Glaciers",
            "Gladiolus",
            "Gladys",
            "Glass",
            "Glasses",
            "Glassware",
            "Glassware, Ancient",
            "Glassworker",
            "Glauchau",
            "Glebe Farm",
            "Glenwood Springs",
            "Gliding and soaring",
            "Globe",
            "Globe Mutiny, 1824",
            "Globe anemone",
            "Globes",
            "Globothalamea",
            "Gloria",
            "Glossaries, vocabularies, etc",
            "Gloster Mill",
            "Glove",
            "Gloves",
            "Glue",
            "Glyptics",
            "Go (Game)",
            "Goat",
            "Goat Island",
            "Goatee",
            "Goats",
            "Gobiidae",
            "Goblet",
            "God",
            "Goddesses",
            "Godetia amoena lilja",
            "Gods, Yoruba",
            "Godwin",
            "Goethe",
            "Goggles",
            "Goiter",
            "Gold",
            "Gold discoveries",
            "Gold miners",
            "Gold mines and mining",
            "Gold-leaf",
            "Golden Age",
            "Golden Fairy Lantern",
            "Golden Gate Park",
            "Golden fleabane",
            "Golden sedge",
            "Goldenbowl mariposa",
            "Goldenclub",
            "Goldenpea",
            "Goldenstar",
            "Goldfish",
            "Goldsmith, Oliver",
            "Goldwork",
            "Golf",
            "Golf Club",
            "Golf for women",
            "Golfer",
            "Gondola",
            "Gonfalons",
            "Good Samaritan",
            "Good Shepherd",
            "Good and evil",
            "Goose",
            "Goose Creek",
            "Gopi",
            "Gorget",
            "Gorgonacea",
            "Gorgonidae",
            "Gorilla",
            "Goryeo period (918 - 1392)",
            "Gospel (Music)",
            "Gothic revival (Literature)",
            "Gourd",
            "Government",
            "Government publications",
            "Government relations",
            "Governors",
            "Governors Island",
            "Gowanus Bay",
            "Grackle",
            "Grain",
            "Grain elevator",
            "Graining",
            "Gramineae",
            "Grammar",
            "Granada",
            "Grand Canal",
            "Grand Canyon",
            "Grand Canyon of the Colorado",
            "Grand Canyon of the Yellowstone",
            "Grand Central Hotel",
            "Grand Central Station",
            "Grand Detour",
            "Grand Trianon",
            "Grandeur",
            "Grandfather Clock",
            "Granite",
            "Grape",
            "Grape hyacinth",
            "Grapes",
            "Grapevine",
            "Graphic arts",
            "Graphic design (Typography)",
            "Graptolithina",
            "Grass nut",
            "Grass-pink orchid",
            "Grasses",
            "Grasshoppers",
            "Grassland ecology",
            "Grassleaf agoseris",
            "Gravestone",
            "Gravitation",
            "Gravity",
            "Gray phacelia",
            "Gray pussytoes",
            "Gray ragwort",
            "Grayleaf fivefinger",
            "Great Depression",
            "Great Lakes",
            "Great Migration (African American), 1910-1930",
            "Great Moon Hoax",
            "Great Russian Ball",
            "Great Salt Lake",
            "Great Western",
            "Great booby",
            "Greek dress",
            "Green River",
            "Green adder's mouth",
            "Green dragon",
            "Green glaze",
            "Green pyrola",
            "Green strawberry cactus",
            "Greenbear cabbage",
            "Greendragon",
            "Greenwich",
            "Greenwood Lake",
            "Greenwood tree",
            "Gregarines",
            "Grey Eagle",
            "Greyhound",
            "Grief",
            "Grocer",
            "Grocery",
            "Groom",
            "Grooming",
            "Grooming Implements",
            "Grosbeak",
            "Ground beetles",
            "Ground squirrels",
            "Group identity",
            "Groupers",
            "Grouse",
            "Grouse whortleberry",
            "Grouseberry",
            "Growth",
            "Growth (Plants)",
            "Guanyin",
            "Guard",
            "Guardhouse",
            "Guardian lion",
            "Guatemala City",
            "Guggenheim",
            "Guidebooks",
            "Guides, manuels, etc",
            "Guinea pigs",
            "Guitar",
            "Gulls",
            "Gun control",
            "Gunnery",
            "Gunsmith",
            "Gupta dynasty (300 - 699)",
            "Gurus",
            "Gutta-percha",
            "Gym",
            "Gymnastics",
            "Gymnocerata",
            "Gymnolaemata",
            "Gymnosomata",
            "Gymnospermae",
            "Gymnospermopsida",
            "Gymnosperms, Fossil",
            "Gymnotidae",
            "Gypsy moth",
            "H. Prouse Cooper's Down Town Store",
            "HBCUs (Historically Black Colleges and Universities)",
            "HISTORIA NATURAL",
            "Habenaria ciliaris",
            "Habenaria grandiflora",
            "Habenaria lacera",
            "Habenaria obtusata",
            "Habenaria psychodes",
            "Hackensack",
            "Haddock",
            "Haddonfield",
            "Hadrian",
            "Hagar",
            "Hagfishes",
            "Haida poetry",
            "Haida wood-carving",
            "Haiga",
            "Haikai",
            "Haines Point",
            "Hair",
            "Hair Accessory",
            "Hair band",
            "Hair ornament",
            "Hairdressing",
            "Hairdressing of African Americans",
            "Hairstyle",
            "Hairwork jewelry",
            "Hairy phlox",
            "Halcyones",
            "Hale",
            "Half Dome",
            "Halictidae",
            "Halitherium",
            "Hallmarks",
            "Halloween",
            "Halo",
            "Hamamelis virginiana",
            "Hamlet",
            "Hammer",
            "Hampstead Heath",
            "Hampton County",
            "Hampton County courthouse",
            "Hampton Roads",
            "Han dynasty (206 BCE - 220 CE)",
            "Han dynasty, 202 B.C.-220 A.D.",
            "Hancock",
            "Hand",
            "Hand Tools",
            "Hand weaving",
            "Hand-colored",
            "Handbag",
            "Handbooks",
            "Handbooks, manuals, etc.",
            "Handcuffs",
            "Handicapped",
            "Handkerchief",
            "Handkerchiefs",
            "Hands",
            "Handwriting",
            "Hangars",
            "Hanging",
            "Hanshita-e",
            "Hanson",
            "Hanuman",
            "Happiness",
            "Harbinger of spring",
            "Harbors",
            "Hardware",
            "Hardware merchant",
            "Harebell",
            "Harlech",
            "Harlem Renaissance (New Negro Movement)",
            "Harlem River",
            "Harmonica",
            "Harmony",
            "Harness making and trade",
            "Harnesses",
            "Harpacticoida",
            "Harper's Monthly Magazine",
            "Harper's Weekly",
            "Harpers Ferry Raid",
            "Harpoon",
            "Harpoons",
            "Harps (chordophones)",
            "Harpsichordist",
            "Harry L. Jefferys Collection",
            "Hartford, CT",
            "Harvard College",
            "Harvard University",
            "Harvest festival",
            "Harvesting",
            "Hat box",
            "Hatchet",
            "Hatchet Cove",
            "Hate crimes",
            "Hatmaking",
            "Hatpins",
            "Hats",
            "Hausa literature",
            "Haverhill",
            "Hawaiian women",
            "Hawk",
            "Hawks",
            "Hay",
            "Hayle River",
            "Hayride",
            "Haystack",
            "Haystacks",
            "Haze",
            "Hazel alder",
            "Head in art",
            "Headdresses",
            "Headgear",
            "Headless Horseman",
            "Headscarf",
            "Healing",
            "Health",
            "Health & Medicine",
            "Hearing",
            "Heart",
            "Heart Mountain",
            "Hearts (Symbols)",
            "Hearts (motifs)",
            "Hearts bustin' with love",
            "Heater",
            "Heather",
            "Heating",
            "Heaven",
            "Hectograph",
            "Hedge bindweed",
            "Hedgehog cactus",
            "Hedysarum",
            "Hedysarum americanum",
            "Hedysarum boreale",
            "Hedysarum mackenzii",
            "Hedysarum sulphurescens",
            "Heian period (794 - 1185)",
            "Heidelberg",
            "Heieracium gracile",
            "Helen",
            "Helene",
            "Helicidae",
            "Helicinidae",
            "Heliconidae",
            "Helicoplacoidea",
            "Heliotrope valerian",
            "Helix (Mollusks)",
            "Helix hortensis",
            "Helix pomatia",
            "Hell",
            "Helmet Frontpieces",
            "Helmets",
            "Helminths",
            "Hemichordata",
            "Hemiptera",
            "Henri Vever collection",
            "Hentai-kana",
            "Hepatica",
            "Hepatica americana",
            "Heraldry",
            "Herb",
            "Herb gathering",
            "Herbals",
            "Herbaria",
            "Herbs",
            "Hercules",
            "Herd boy",
            "Herding",
            "Heredity",
            "Heredity, Human",
            "Herkimer",
            "Hermannia (Animal)",
            "Hermannia (Plant)",
            "Hermes",
            "Hermit",
            "Hermit crabs",
            "Hermitage",
            "Heroes",
            "Heroine",
            "Herons",
            "Herpetology",
            "Herrick",
            "Herring fisheries",
            "Hesperiidae",
            "Heteropoda",
            "Heteropygii",
            "Heterotardigrada",
            "Hexacorallia",
            "Hexactinellida",
            "Hexanauplia",
            "Hibiscus",
            "Hibiscus moscheutos",
            "Hickory",
            "Hickory tree",
            "Hicks",
            "Hide and seek",
            "Hieroglyph",
            "High Island",
            "High School",
            "High Street",
            "Highbridge",
            "Highbush blackberry",
            "Highbush blueberry",
            "Highlands",
            "Highway",
            "Highway planning",
            "Hill",
            "Hilton Head Harbor",
            "Hindu gods",
            "Hip-hop (Music)",
            "Hippolyte",
            "Hippopotamus",
            "Hirudinea",
            "Hirzenach",
            "Histeridae",
            "Histoire",
            "Histology",
            "Historia do brasil",
            "Historians",
            "Historic buildings",
            "Historic preservationist",
            "Historic sites",
            "Historical geography",
            "Historical geology",
            "Historical museums",
            "Historical society administrator",
            "Historiographer",
            "History",
            "History and criticism",
            "History painter",
            "History, General",
            "History, Military",
            "History, Naval",
            "History, Reform Movements, Indian Movement",
            "Hitching post",
            "Hobbyhorse",
            "Hochkirch",
            "Hoe",
            "Holidays",
            "Holidays & Celebrations",
            "Holidays and Celebrations, general",
            "Holidays and festivals",
            "Hollow-cut",
            "Hollyhock",
            "Hollywood (Film)",
            "Holofernes",
            "Holothurians",
            "Holothuroidea",
            "Holster",
            "Holy Family",
            "Holy Name Cathedral",
            "Holy Sepulchre",
            "Holy Spirit",
            "Holy man",
            "Holyoke",
            "Homage",
            "Homalozoa",
            "Home Furnishings",
            "Home economics",
            "Home labor",
            "Home life",
            "Homecoming",
            "Homelessness",
            "Homer",
            "Homer, Winslow",
            "Homing pigeons",
            "Homo erectus",
            "Homoptera",
            "Homoscleromorpha",
            "Honeybee",
            "Honeymoons",
            "Honeysuckles",
            "Honfleur",
            "Hooded ladies-tresses",
            "Hooded pitcherplant",
            "Hook Pond",
            "Hookah",
            "Hoop rolling",
            "Hoopoe",
            "Hope",
            "Horn",
            "Horn fly",
            "Hornbills",
            "Hornbooks",
            "Horns",
            "Horse Race between Peytona and Fashion",
            "Horse artillery",
            "Horse breeder",
            "Horse racing",
            "Horse sports",
            "Horseflies",
            "Horsemen and horsewomen",
            "Horsemen and horsewomen in art",
            "Horses",
            "Horses in art",
            "Horses, Fossil",
            "Horseshoe",
            "Horseshoe Bend",
            "Horseshoe Falls",
            "Horseshoes (animal equipment)",
            "Horticulture",
            "Horticulturist",
            "Horus",
            "Hosea",
            "Hosiery",
            "Hospital",
            "Hospital bed",
            "Hospital founder",
            "Hospital room",
            "Host plants",
            "Hostess",
            "Hot air balloons",
            "Hot spring",
            "Hotei",
            "Hotel",
            "Hotel San Dominico",
            "Hotelier",
            "Hotels",
            "Hougomont",
            "Hound",
            "Hours",
            "Housatonic River",
            "Housatonic Valley",
            "House construction",
            "House painting",
            "Household",
            "Household Tools and Equipment",
            "Household appliances",
            "Household linens",
            "Household pests",
            "Housekeeping",
            "Housing",
            "Houstonia",
            "Houstonia caerulea",
            "Houstonia procumbens",
            "Houstonia serpyllifolia",
            "Howdahs",
            "Hoyt",
            "Hoyt Mansion",
            "Hudderfield",
            "Hudson Flyer (Airplane)",
            "Hudson-Fulton Celebration, 1909",
            "Hugo",
            "Hula (Dance)",
            "Hula dancing",
            "Human Figures",
            "Human beings",
            "Human biology",
            "Human figure in art",
            "Human remains (Archaeology)",
            "Human spaceflight",
            "Humanitarian Causes",
            "Humanitarian organization administrator",
            "Humanitarian organization founder",
            "Humanitarianism",
            "Humanities",
            "Humans",
            "Hummingbirds",
            "Humorist",
            "Humorous music",
            "Humorous songs",
            "Humus",
            "Hunger",
            "Hungerford Bridge",
            "Hunter",
            "Hunting",
            "Hunting Park",
            "Hunting and gathering societies",
            "Hunting customs",
            "Hunting stories",
            "Hunting trophies",
            "Hunting/Fishing",
            "Huntingdon Valley",
            "Hur (Biblical character)",
            "Hurdy-gurdy",
            "Hyaku Monogatari",
            "Hyattstown",
            "Hybrid pitcherplant",
            "Hybridization",
            "Hydrachnidae",
            "Hydrants",
            "Hydraulic engineering",
            "Hydraulic equipment",
            "Hydraulic machinery",
            "Hydraulic structures",
            "Hydrocotyle",
            "Hydrographer",
            "Hydrography",
            "Hydroida",
            "Hydrology",
            "Hydromedusae",
            "Hydrophilidae",
            "Hydrostatics",
            "Hydrozoa",
            "Hymenocallis rotata",
            "Hymenoptera",
            "Hymns",
            "Hymns, Arikara",
            "Hymns, Cheyenne",
            "Hymns, Chinook",
            "Hymns, Chinook jargon",
            "Hymns, Chipewyan",
            "Hymns, Chippewa",
            "Hymns, Cree",
            "Hymns, Creek",
            "Hymns, Dakota",
            "Hymns, Delaware",
            "Hymns, English",
            "Hymns, Eskimo",
            "Hymns, Etchareottine",
            "Hymns, Gwich'in",
            "Hymns, Hawaiian",
            "Hymns, Hidatsa",
            "Hymns, Ingalik",
            "Hymns, Inuit",
            "Hymns, Iroquois",
            "Hymns, Mandan",
            "Hymns, Micmac",
            "Hymns, Mohawk",
            "Hymns, Navaho",
            "Hymns, Ojibwa",
            "Hymns, Omaha",
            "Hymns, Ottawa",
            "Hymns, Santee",
            "Hymns, Seneca",
            "Hyolitha",
            "Hypericum",
            "Hypericum perforatum",
            "Hyperiidae",
            "Hyperiidea",
            "Hypnotist",
            "Hypopitys americana",
            "Hypopitys lanuginosa",
            "Hypostomus",
            "Hythe",
            "INDIOS DE AMERICA DEL NORTE",
            "Ibek",
            "Ibex",
            "Ibidium cernum",
            "Ibidium gracile",
            "Ibidium strictum",
            "Ibises",
            "Icahabod Crane",
            "Icarus (Greek mythological character)",
            "Ice",
            "Ice Skater",
            "Ice Skating",
            "Ice cream",
            "Ice cutting",
            "Ice floes",
            "Iceberg",
            "Iceberg Canyon",
            "Ichneumonidae",
            "Ichnites",
            "Ichnites amphibia",
            "Ichnofossil",
            "Ichthyology",
            "Idealism in art",
            "Idoteidae",
            "Igneous rocks",
            "Iguanas",
            "Ikenobō school",
            "Il-Khanid dynasty (1256 - 1353)",
            "Ilex verticillata",
            "Ilex vomitoria",
            "Illegal slave trade",
            "Illumination",
            "Illumination of books and manuscripts",
            "Illumination of books and manuscripts, Byzantine",
            "Illustrated",
            "Illustrated books",
            "Illustrated children's books",
            "Illustration",
            "Illustrations",
            "Illustrator",
            "Imaginary",
            "Imagination",
            "Imam",
            "Immaculate Conception",
            "Implements",
            "Importer",
            "Imposition (Printing)",
            "Impresario",
            "Imprints (Publications)",
            "Imprisonment",
            "In art",
            "In literature",
            "Inaugurations",
            "Incense",
            "Incertae sedis",
            "Inchū school",
            "Incunabula",
            "Independence Hall",
            "Independent Order of Odd Fellows",
            "Independent films",
            "Indet.",
            "Indexes",
            "Indian Affairs",
            "Indian Peace Medal",
            "Indian paintbrush",
            "Indian reservations",
            "Indians, North American",
            "Indians, South American",
            "Indicators",
            "Indiens",
            "Indigo",
            "Indoor gardening",
            "Indra",
            "Industrial arts",
            "Industrial design",
            "Industrial districts",
            "Industrial hygiene",
            "Industrial policy",
            "Industrialist",
            "Industrialists",
            "Industrialization",
            "Industries",
            "Industries, Primitive",
            "Infancy",
            "Inferno",
            "Inflation",
            "Inflation (Finance)",
            "Infusoria",
            "Inheritance of acquired characters",
            "Initials",
            "Injustice",
            "Inkstand",
            "Inkstands",
            "Inkwell",
            "Inland Niger Delta Style",
            "Inland navigation",
            "Inlet",
            "Inn",
            "Inro",
            "Insanity",
            "Inscriptions",
            "Inscriptions, Greek",
            "Inscriptions, Mayan",
            "Inscriptions, Sabean",
            "Insect pests",
            "Insect-plant relationships",
            "Insecta (Sistematica",
            "Insecticides",
            "Insects",
            "Insects as carriers of disease",
            "Insects in art",
            "Insects, Fossil",
            "Insignia",
            "Inspection",
            "Inspector",
            "Inspiration Point",
            "Instinct",
            "Institut de France",
            "Institutional Furnishings",
            "Instructional materials",
            "Instrumentalists (Musicians)",
            "Instruments",
            "Insurance",
            "Insurance agent",
            "Insurance broker",
            "Insurrectionist",
            "Intaglios",
            "Intellectual life",
            "Intelligence Agent",
            "Interior architecture",
            "Interior decoration",
            "Interior designer",
            "Interior with Exterior View",
            "International Postal Operations",
            "International Stamps & Mail",
            "International affairs",
            "International cooperation",
            "Interpretation of cultural and natural resources",
            "Intoxicated",
            "Introduced insects",
            "Inuits",
            "Invention and the Patent Model",
            "Inventions",
            "Inventories",
            "Inventors",
            "Invertebrate Zoology",
            "Invertebrates",
            "Invertebrates, Fossil",
            "Invertébrés",
            "Investment banker",
            "Investor",
            "Invoice",
            "Io (Gasteropoda)",
            "Iowa",
            "Iowa State Capitol",
            "Ipomoea quamoclit",
            "Ipswich",
            "Ipswich River",
            "Iraq War, 2003-2011",
            "Iridescence",
            "Iris",
            "Iris cristata",
            "Iris missouriensis",
            "Iris species",
            "Iris verna",
            "Iris versicolor",
            "Irises (Plants)",
            "Iron",
            "Iron Clad Mine",
            "Iron industry and trade",
            "Ironing",
            "Ironmaster",
            "Ironwork",
            "Iroquois art",
            "Irritability",
            "Irving",
            "Ishanaten",
            "Isis",
            "Islamic architecture",
            "Islamic art",
            "Island animals",
            "Island ecology",
            "Islands",
            "Isle of Man",
            "Isles of Shoals",
            "Isola Madre",
            "Isolation",
            "Isopoda",
            "Isopoda z Antarctic regions",
            "Ispoda",
            "Istanbul",
            "Italian dress",
            "Italic",
            "Italic type",
            "Ivories",
            "Ivory",
            "Ivory baneberry",
            "Ivory carving",
            "Ivory nut palm",
            "Ivory nuts",
            "Ivy",
            "Ixodes",
            "Ixodidae",
            "Izmit",
            "Île corallienne",
            "Jack in the pulpit",
            "Jack-in-the-pulpit",
            "Jackels",
            "Jacket",
            "Jackson",
            "Jackson's Fall",
            "Jacob's ladder",
            "Jade",
            "Jaguar",
            "Jalapa",
            "James Creek",
            "James River Canal",
            "Janaka",
            "Jane",
            "Janthinidae",
            "January",
            "Japanese Art",
            "Japanese dress",
            "Japanese literature",
            "Japanese poetry",
            "Japanese tea ceremony",
            "Japanese tea masters",
            "Japanese wit and humor, Pictorial",
            "Japanning",
            "Jardins",
            "Jaws",
            "Jazz",
            "Jazz (Music)",
            "Jefferson",
            "Jefferson Canyon",
            "Jefferson Park",
            "Jefferson River",
            "Jeffersonia diphylla",
            "Jellyfishes",
            "Jenkins",
            "Jersey City",
            "Jerusalem",
            "Jessica",
            "Jesuit poetry, Latin (Medieval and modern)",
            "Jesus Christ",
            "Jeweler",
            "Jewelers' supplies",
            "Jewelry",
            "Jewelry making",
            "Jewelry merchant",
            "Jewelry, Ancient",
            "Jewish scientists",
            "Jews, Ethiopian",
            "Jiehua",
            "Jin dynasty (1115 - 1234)",
            "Jingdezhen ware",
            "Jittoku",
            "Jizo Bosatsu",
            "Joan",
            "Jockey",
            "Joe",
            "John Bull (Steam locomotive)",
            "John Bull (Symbolic character)",
            "John P. V. Heinmuller Collection of Zeppelin Covers",
            "John Ten Broeck",
            "John the Baptist",
            "Johnstons Creek",
            "Johnstown",
            "Joint Chiefs of Staff",
            "Jonah",
            "Joseon period (1392 - 1910)",
            "Joseph",
            "Journalism",
            "Journalism and Media",
            "Jōruri",
            "Jubilee singers",
            "Judaism",
            "Judges",
            "Judith",
            "Juggler",
            "Julienne",
            "Julius Caesar",
            "Jullien Geometric Models",
            "Jumping",
            "Juncaceae",
            "Juncus",
            "June",
            "Jungermanniopsida",
            "Juniperus horizontalis",
            "Juniperus sibirica",
            "Juno",
            "Jupiter (Steam locomotive)",
            "Jurist",
            "Justice",
            "Justice of the Peace",
            "Juvenile and popular history",
            "Juvenile literature",
            "Ka?ma (Hindu deity)",
            "Kaaterskill Creek",
            "Kaikeyi",
            "Kakemono",
            "Kalasa",
            "Kalmia angustifolia",
            "Kalmia latifolia",
            "Kalmia microphylla",
            "Kalmia polifolia",
            "Kalorama",
            "Kamakura period (1185 - 1333)",
            "Kanab Canyon",
            "Kanab Wash",
            "Kanawha River",
            "Kanawha River Valley",
            "Kandy period (1357 - 1817)",
            "Kangaroo",
            "Kangaroos",
            "Kangxi reign (1662 - 1722)",
            "Kannon",
            "Kanzan",
            "Kanze school",
            "Karnak",
            "Karyokinesis",
            "Kasyapa",
            "Kataka mudra",
            "Kauterskill Fall",
            "Kayak",
            "Kayser's Pond",
            "Kea",
            "Kearsarge",
            "Kel Ajjer",
            "Kemble",
            "Kentucky Derby",
            "Keratinization",
            "Kerchief",
            "Kestert",
            "Key",
            "Key pattern",
            "Keys (Hardware)",
            "Khakkhara",
            "Khayyam, Omar",
            "Kidneys",
            "Kilns",
            "Kimono",
            "Kimonos",
            "Kineh",
            "King",
            "King Lear",
            "King Street",
            "King Ullin's Daughter",
            "King and his Servants",
            "King's College Chapel",
            "Kings and rulers",
            "Kings, queens, rulers, etc.",
            "Kissing",
            "Kitchen",
            "Kitchen gardens",
            "Kitchen utensil",
            "Kitchen utensils",
            "Kitchen-middens",
            "Kites",
            "Kites (Toys)",
            "Klein Laufenberg",
            "Knickerbocker's History of New York",
            "Knife",
            "Knife River",
            "Knight",
            "Knit goods",
            "Knitting",
            "Knitting machines",
            "Knives",
            "Ko school",
            "Kofun (Tumulus) Period (250 - 552)",
            "Kolonie",
            "Kom Ombos",
            "Kopffüßer",
            "Korean Art",
            "Kraunhia frutescens",
            "Krindi",
            "Krishna",
            "Krishna Vishvarupa",
            "Kruhsea",
            "Kruhsea streptopoides",
            "Ksitigarbha",
            "Kubera",
            "Kufic script",
            "Kumbhakarna",
            "Kundika",
            "Kunst",
            "Kusha",
            "Kwa-ten",
            "Kyōka",
            "Kyōshi",
            "LGBTQ",
            "La Libertad",
            "La Maison des Cariatides",
            "La Union",
            "Lab Coat",
            "Labadists",
            "Labor and laboring classes",
            "Labor history",
            "Labor leader",
            "Labor movement",
            "Labor unions",
            "Laboratories",
            "Laboratory",
            "Laboratory Equipment",
            "Labour unions",
            "Labrador tea",
            "Labyrinth (Ear)",
            "Lac du Cygne",
            "Lace and lace making",
            "Lace bobbins",
            "Lacerta",
            "Lacerta agilis",
            "Lacerta viridis",
            "Lacertidae",
            "Lacquer and lacquering",
            "Lacrosse",
            "Ladder",
            "Ladder gentian",
            "Ladders",
            "Lady Macbeth",
            "Ladybugs",
            "Lafayette",
            "Lago Maggiore",
            "Lake Amatitlan",
            "Lake Avernus",
            "Lake Calhoun",
            "Lake Champlain",
            "Lake Chaplain",
            "Lake Como",
            "Lake Cuitzeo",
            "Lake Fusaro",
            "Lake Geneva",
            "Lake Louise Arnica",
            "Lake Lugano",
            "Lake Maggiore",
            "Lake Michigan",
            "Lake Owasco",
            "Lake Placid",
            "Lake Saint Croix",
            "Lake Titicaca",
            "Lake animals",
            "Lake sediments",
            "Lakes",
            "Lakes & ponds",
            "Lakshmana",
            "Lakshmi",
            "Laliburte's Fur Parlor",
            "Lama",
            "Lamas",
            "Lambkill",
            "Lambs",
            "Lamellibranchiata",
            "Laminaria",
            "Laminariaceae",
            "Lampreys",
            "Lampropeltis",
            "Lamps",
            "Lamps, Classical",
            "Lan Na period (1251 - 1774)",
            "Land Transportation",
            "Land and property",
            "Land developer",
            "Land grants",
            "Land speculator",
            "Land tenure",
            "Land transfers",
            "Landini",
            "Landowner",
            "Landscape architect",
            "Landscape architecture",
            "Landscape gardening",
            "Landscape painter",
            "Landscape painting, English",
            "Landscape painting, Japanese",
            "Landscape, Rural",
            "Landscape, Urban",
            "Landscapes",
            "Language and languages",
            "Lansing",
            "Lantern",
            "Lantern slide",
            "Laon",
            "Laozi",
            "Lapel pin",
            "Lapidaries (Medieval literature)",
            "Lappula diffusa",
            "Lapwings",
            "Large purple fringe-orchid",
            "Large white trillium",
            "Lariat",
            "Larix lyallii",
            "Larix occidentalis",
            "Larnaca",
            "Larsen Ceramics",
            "Larvacea",
            "Larvae",
            "Larynx",
            "Las Nubes",
            "Last Days of Pompeii",
            "Last Judgment",
            "Last Race",
            "Last Supper",
            "Late Nara (Tempyo) period (710 - 794)",
            "Late Neolithic period (ca. 5000 - ca. 1700 BCE)",
            "Late Period (664 - 332 BCE)",
            "Lathe",
            "Lathrop",
            "Lathyrus decaphyllus",
            "Lathyrus ochroleucus",
            "Latin jazz (Music)",
            "Latinos and Baseball",
            "Latona",
            "Latticework",
            "Laufenberg",
            "Laufenburg",
            "Laundry",
            "Laundryman",
            "Laurel",
            "Laurel Leaves",
            "Lausanne",
            "Lava",
            "Lavender",
            "Law",
            "Law and Law Enforcement",
            "Law and legislation",
            "Law reform",
            "Law reformer",
            "Lawyers",
            "Laying of Transatlantic Cable",
            "Lazarus",
            "Laziness",
            "Lazio",
            "Le Puy",
            "Le Puy Cathedral",
            "Lead",
            "Leadership",
            "Leadville",
            "Leafhoppers",
            "Learned institutions and societies",
            "Leather Jacket",
            "Leather bindings (Bookbinding)",
            "Leather flower",
            "Leather jacket",
            "Leatherwork",
            "Leatherworker",
            "Leaves",
            "Lebanon",
            "Lecanoromycetes",
            "Lechuguilla",
            "Lecturer",
            "Lectures and lecturing",
            "Ledum groenlandicum",
            "Leeches",
            "Leg",
            "Legal Scholar",
            "Legend of Sleepy Hollow",
            "Legion of Honor",
            "Legislative chamber",
            "Legislator",
            "Legislators",
            "Legumes",
            "Lehigh River",
            "Leiophyllum lyoni",
            "Lelant",
            "Lemon",
            "Lemon columbine",
            "Lemuridae",
            "Leo",
            "Leotiomycetes",
            "Lepadogaster",
            "Lepargyrea canadensis",
            "Lepidoptera",
            "Lepismatidae",
            "Leptarrhena pyrolifolia",
            "Leptinotarsa",
            "Leptochloa",
            "Leptostraca",
            "Lepus",
            "Leroy",
            "Letter carriers",
            "Letter opener",
            "Letter reading and writing",
            "Letter writer",
            "Letterer",
            "Lettering",
            "Letters",
            "Leucosiidae",
            "Lewes",
            "Lewis and Clark Centennial Exposition, 1905",
            "Lewis monkey flower",
            "Lewisia redivivia",
            "Lexicographer",
            "Lexington",
            "Lexington Avenue",
            "Lexington, KY",
            "Leycock Abbey",
            "Lépidoptères",
            "Li Tiegnai",
            "Li style",
            "Libellulidae",
            "Liberty",
            "Liberty Bell",
            "Liberty Cap",
            "Libra",
            "Librarian",
            "Libraries",
            "Library administrator",
            "Library catalogs",
            "Librettist",
            "Librettos",
            "Licenzo",
            "Lichens",
            "Lichinomycetes",
            "Liebenstein Castle",
            "Liechtenstein",
            "Liege",
            "Lieutenant",
            "Lieutenant Colonel",
            "Lieutenant Governor",
            "Life",
            "Life (Biology)",
            "Life mask",
            "Life on other planets",
            "Life preservers",
            "Lifeguard",
            "Lifesaving",
            "Light",
            "Light bulb",
            "Light, Wave theory of",
            "Lighthouse Beach",
            "Lighthouses",
            "Lighting",
            "Lighting Devices",
            "Lighting and water supply",
            "Lighting fixture",
            "Lightning",
            "Ligia",
            "Lilac",
            "Lilac mariposa",
            "Lilies",
            "Lilies-of-the-valley",
            "Lilium canadense",
            "Lilium columbianum",
            "Lilium montanum",
            "Lilium parvum",
            "Lilium philadelphicum",
            "Lilium washingtonianum",
            "Lille",
            "Lily",
            "Lily ponds",
            "Lily twayblade",
            "Lima",
            "Limache",
            "Limacidae",
            "Limber pine",
            "Limehouse",
            "Limicolae",
            "Limnology",
            "Limnædiæ",
            "Limodorum turberosum",
            "Limon Bay",
            "Limpets",
            "Limulus",
            "Limulus polyphemus",
            "Lincoln Memorial (Washington, D.C.)",
            "Lincoln Street",
            "Lincoln, Abraham",
            "Lincoln, NE",
            "Linden tree",
            "Linens",
            "Linguists",
            "Lingulata",
            "Linnaea borealis americana",
            "Linum lewisii",
            "Lion hunting",
            "Lipari Islands",
            "Liparis liliifolia",
            "Lippincott's Magazine",
            "Liquor industry",
            "Liriodendron tulipifera",
            "Liriope (Cnidaria)",
            "Lisieux",
            "Litchi",
            "Literary critic",
            "Literature",
            "Lithocharis",
            "Lithocolletis",
            "Lithographer",
            "Lithography",
            "Lithospermum canescens",
            "Lithospermum ruderale",
            "Lithothamnium",
            "Little Bighorn, Battle of the, Mont., 1876",
            "Little Colorado River",
            "Little Knob",
            "Little Miss Muffet",
            "Littorina",
            "Littorinidae",
            "Liturgical objects",
            "Liu Hai",
            "Liu Song dynasty (420 - 479)",
            "Liver flukes",
            "Liverpool",
            "Liverworts",
            "Livestock",
            "Living Collections",
            "Living room",
            "Lizards",
            "Llanrwst",
            "Lloyd's strawberry cactus",
            "Loader",
            "Lobbyist",
            "Lobelia cardinalis",
            "Lobelia kalmii",
            "Loblolly pine",
            "Lobster",
            "Lobster fisheries",
            "Lobsters",
            "Loch Long",
            "Locks and keys",
            "Locksmith",
            "Locusts",
            "Lodgepole pine",
            "Log cabin",
            "Logan Springs",
            "Logarithms",
            "Logic",
            "Loincloth",
            "Loing River",
            "Lombardy",
            "Lombricidae",
            "London Stock Exchange",
            "Lone Star Geyser Cone",
            "Long Branch",
            "Long Branch Beach",
            "Long Island",
            "Long's Peak",
            "Longevity",
            "Longing",
            "Longleaf pine",
            "Lonicera glaucescens",
            "Lonicera involucrata",
            "Loom",
            "Looms",
            "Loon",
            "Lorenzo",
            "Lorgnettes",
            "Loricariidae",
            "Lories",
            "Lost Lake",
            "Lost tribes of Israel",
            "Lotos",
            "Lottia gigantea Gray",
            "Lotus",
            "Lotus Sutra",
            "Lotus puberulus",
            "Louis XIV style",
            "Louis XVI",
            "Louisiana Purchase",
            "Louvre",
            "Love",
            "Love songs",
            "Lovers",
            "Low whortleberry",
            "Lower Niger Bronze Industry",
            "Lowry",
            "Loyalist",
            "Lu Dongbin",
            "Lucanidae",
            "Lucretilis Mountains",
            "Luggage",
            "Lullabies",
            "Lullabies, English",
            "Lumber",
            "Luminescence",
            "Luna (Roman deity)",
            "Lunar geology",
            "Lungs",
            "Luohan",
            "Lupine",
            "Lupinis arboreus",
            "Lupinus argenteus",
            "Lupinus fornosus",
            "Lupinus perennis",
            "Lurlei",
            "Lustre",
            "Lustreware",
            "Lute",
            "Lutheran Church",
            "Luxembourg Gardens",
            "Luxor",
            "Lyall larch",
            "Lycaenidae",
            "Lychnis apetala",
            "Lycidae",
            "Lycinae",
            "Lycodes",
            "Lygaeidae",
            "Lygodesmia grandiflora",
            "Lygodesmia juncea",
            "Lygodium Icandeus",
            "Lymnaea",
            "Lymnaeidae",
            "Lynching",
            "Lyre",
            "Lyres",
            "Lyricist",
            "Lysianassidae",
            "Lysimachia",
            "MENOMINEES",
            "Ma Gu",
            "Macaroni penguin",
            "Macbeth",
            "Macedonia",
            "Machine design",
            "Machine sewing",
            "Machine-tools",
            "Machinery",
            "Machinery industry",
            "Machinery, Kinematics of",
            "Machinist",
            "Machinists",
            "Mackerel fisheries",
            "Mackinaw",
            "Macramé",
            "Macrouridae",
            "Madeleine",
            "Madhavi",
            "Madison",
            "Madison County Movement",
            "Madison Square",
            "Maenad",
            "Magazine article",
            "Magazine editor",
            "Magazine publisher",
            "Magdeburg experiments",
            "Magenta (Corvette)",
            "Magi",
            "Magic",
            "Magic tricks",
            "Magician",
            "Magistrate",
            "Magnetic declination",
            "Magnetic fields",
            "Magnetic materials",
            "Magnetic pole",
            "Magnetism",
            "Magnets",
            "Magnifying glass",
            "Magnolia",
            "Magnolia acuminata",
            "Magnolia cordata",
            "Magnolia grandiflora",
            "Magnolia scuminata",
            "Magnolia tree",
            "Magnolia tripetala",
            "Magnolia virginiana",
            "Magnoliopsida",
            "Magpie",
            "Mahabharata",
            "Mahakala",
            "Mahasthamaprapta",
            "Mahayana Buddhism",
            "Mahogany",
            "Mahout",
            "Mail Processing",
            "Mail steamers",
            "Mail wagons",
            "Main Street",
            "Maitreya Buddha",
            "Majnun",
            "Majolica, Italian",
            "Major General",
            "Major general",
            "Majority Leader",
            "Makah Indians",
            "Makeup",
            "Makimono",
            "Malacologist",
            "Malacologists",
            "Malacostraca",
            "Malacostraca, Fossil",
            "Malaxis unifolia",
            "Maldanidae",
            "Male and child",
            "Male and female",
            "Male use",
            "Mallet",
            "Mallophaga",
            "Malmesbury",
            "Malpighiaceae",
            "Malt",
            "Malt liquors",
            "Malt-extracts",
            "Malta",
            "Maltese crosses",
            "Malus coronaria",
            "Mamíferos",
            "Mamluk period (1250 - 1517)",
            "Mammalogists",
            "Mammalogy",
            "Mammals",
            "Mammals, Fossil",
            "Mammifères",
            "Mammologists",
            "Mammoths",
            "Man, Origin of",
            "Man-woman relationships",
            "Management",
            "Manatees",
            "Mandara (Buddhism)",
            "Mandorla",
            "Manet, Edouard",
            "Manhood",
            "Manitou",
            "Manjushri",
            "Manners and customs",
            "Manners and customs in art",
            "Mansfield",
            "Mansion House",
            "Mantel",
            "Mantels",
            "Manual training",
            "Manuals",
            "Manufacture and refining",
            "Manufacturer",
            "Manufactures",
            "Manufacturing industries",
            "Manures",
            "Manuscript design",
            "Manuscripts",
            "Manuscripts, Amharic",
            "Manuscripts, Ethiopic",
            "Manuscripts, Greek",
            "Manuscripts, Illinois",
            "Manuscripts, Maya",
            "Manuscripts, Mexican",
            "Manuscripts, Montagnais",
            "Manuscripts, Nahuatl",
            "Manuscripts, Spanish",
            "Manuscripts, Spanish American",
            "Manuscripts, Tlaxcalan",
            "Maple",
            "Maple tree",
            "Marble industry and trade",
            "Marblehead",
            "Marbles",
            "Marbling",
            "March for Our Lives",
            "March on Washington for Jobs and Freedom",
            "Marches",
            "Marches (Instrumental ensemble)",
            "Marches (Piano)",
            "Marches (Voice with piano)",
            "Marches (Voice with piano), Arranged",
            "Marching bands (Music)",
            "Marchioness",
            "Marconi system",
            "Marginellidae",
            "Maria Ten Broeck",
            "Marine Biology",
            "Marine Corps",
            "Marine algae",
            "Marine aquariums",
            "Marine aquariums, Public",
            "Marine borers",
            "Marine ecology",
            "Marine engineer",
            "Marine fishes",
            "Marine invertebrates",
            "Marine laboratories",
            "Marine meteorology",
            "Marine organisms",
            "Marine painter",
            "Marine painting",
            "Marine plankton",
            "Marine plants",
            "Marine resources",
            "Marine sciences",
            "Marine sediments",
            "Mariposa County",
            "Mariposa Grove",
            "Maritime law",
            "Market",
            "Market Street",
            "Marks",
            "Marksburg Castle",
            "Marksman",
            "Marl",
            "Marmelito",
            "Marne, 1st Battle of the, France, 1914",
            "Marquis",
            "Marquise",
            "Marqués",
            "Marriage",
            "Marriage of the King's Son",
            "Marseilles",
            "Marshall Pass",
            "Marshes",
            "Marshmarigold",
            "Marsupialia",
            "Marsupials",
            "Marsupials, Fossil",
            "Marsyas",
            "Martha",
            "Martha's Vineyard",
            "Martin Chuzzlewit",
            "Martyr",
            "Mary, Blessed Virgin, Saint",
            "Maryland Heights",
            "Masculine names",
            "Masks",
            "Masks (Sculpture)",
            "Mason bees",
            "Masonic",
            "Masonic dress",
            "Masonic symbols",
            "Masquerade",
            "Mass media",
            "Massapponax Bridge",
            "Masson",
            "Mastodons",
            "Materia medica",
            "Materia medica, Vegetable",
            "Materialism",
            "Materials and instruments",
            "Math symbols",
            "Mathematical Association of America Objects",
            "Mathematical Charts and Tables",
            "Mathematical geography",
            "Mathematical instruments",
            "Mathematical statistics",
            "Mathematician",
            "Mathematicians",
            "Mathematics",
            "Mathematics, Greek",
            "Matilija poppy",
            "Maulstick",
            "Mausoleum",
            "Maxillopoda",
            "May Day",
            "May McWilliams",
            "May cherry",
            "Mayapple",
            "Mayflies",
            "Mayflower",
            "Mayors",
            "Maypop",
            "Mazatenango",
            "Mazatlan",
            "McLean House",
            "Mdewakanton Dakota",
            "Meade",
            "Meadow",
            "Meadow beauty",
            "Meadow fleabane",
            "Meadowbrook Parsonage",
            "Meal",
            "Measuring device",
            "Meat",
            "Meat packer",
            "Mechanical engineer",
            "Mechanical engineering",
            "Mechanics",
            "Mechanics, Analytic",
            "Mechanotherapy",
            "Medal",
            "Medal of Honor",
            "Medalist",
            "Medallion",
            "Medals",
            "Medical Scientist",
            "Medical artist",
            "Medical geography",
            "Medical instruments and apparatus",
            "Medical parasitology",
            "Medical personnel",
            "Medicine",
            "Medicine Ceremony",
            "Medicine Lodge Creek",
            "Medicine and Health",
            "Medicine man",
            "Medicine, Ancient",
            "Medicine, Arab",
            "Medicine, Greek and Roman",
            "Medicine, Medieval",
            "Medicine, Military",
            "Medicine, Popular",
            "Medieval dress",
            "Meditation",
            "Mediterranean Sea",
            "Medulla oblongata",
            "Medusa",
            "Meeting Street",
            "Megalobatrachus maximus Schlegel",
            "Megatherium",
            "Meghoppen",
            "Meiji era (1868 - 1912)",
            "Meissen porcelain",
            "Melanatria",
            "Melancholy",
            "Melanoplus",
            "Meloidae",
            "Melon",
            "Melos",
            "Melville Bay",
            "Membracidae",
            "Memoirist",
            "Memorials",
            "Memory",
            "Men",
            "Menageries",
            "Mendel's law",
            "Menidia",
            "Mensuration",
            "Mental health",
            "Mentzelia laevicaulis",
            "Menu",
            "Menus",
            "Menyanthes trifoliata",
            "Menzies penstemon",
            "Menziesia",
            "Menziesia glabella",
            "Merced River",
            "Mercedes",
            "Mercenaria",
            "Merchant of Venice",
            "Merchants",
            "Merchants' Exchange",
            "Mercury (Planet)",
            "Meridians (Geodesy)",
            "Mermaid",
            "Merostomata",
            "Merrimac",
            "Merry Wives of Windsor",
            "Merry-go-rounds",
            "Mertensia paniculata",
            "Mertensia virginica",
            "Mesilla",
            "Mesoderm",
            "Mesogastropoda",
            "Mesoplodon",
            "Messenger",
            "Messengers",
            "Messina",
            "Metabolism",
            "Metal catalysts",
            "Metal-work",
            "Metalworker",
            "Metalworking",
            "Metamorphosis",
            "Metamorphosis of insects",
            "Metaphysics",
            "Meteorites",
            "Meteorological instruments",
            "Meteorologist",
            "Meteorology",
            "Meteors",
            "Meterology",
            "Methodist Church",
            "Methodology",
            "Metric system",
            "Meudon",
            "Mevagissey",
            "Mexican War, 1846-1848",
            "Mexican fremontia",
            "Mexican poppy",
            "Mexico City",
            "Mezzotint engraving",
            "Mezzotint engraving, British",
            "Mice",
            "Michigan Avenue",
            "Mickey Mouse (Fictitious character)",
            "Micmac (Indiens)",
            "Microbiologist",
            "Microbiology",
            "Microchemistry",
            "Microorganisms",
            "Microphone",
            "Microscopes",
            "Midas",
            "Middle Passage",
            "Middle ear",
            "Midsummer Night's Dream",
            "Midwifery",
            "Migrations",
            "Miles City",
            "Military",
            "Military & Policing Forces",
            "Military Camp",
            "Military Schools",
            "Military and Intelligence",
            "Military bands",
            "Military campaigns",
            "Military camps",
            "Military decorations",
            "Military engineer",
            "Military engineering",
            "Military officers",
            "Military operations, Aerial",
            "Military operations, Naval",
            "Military parades & ceremonies",
            "Military training camps",
            "Military vehicle",
            "Militiaman",
            "Milkweed",
            "Mill",
            "Millers",
            "Millet",
            "Milling",
            "Millipedes",
            "Mills and mill-work",
            "Milton",
            "Milwaukee",
            "Mime",
            "Mimicry (Biology)",
            "Mimulus bigelovii",
            "Mimulus caespitosus",
            "Mimulus cardinalis",
            "Mimulus lewisii",
            "Mimulus moschatus",
            "Mine",
            "Miner's candle",
            "Mineral",
            "Mineral industries",
            "Mineral spring",
            "Mineralogical museums",
            "Mineralogist",
            "Mineralogists",
            "Mineralogy",
            "Mineralogy, Determinative",
            "Minerals",
            "Minerals in pharmacology",
            "Minerva",
            "Mines (Military explosives)",
            "Mines and mineral resources",
            "Ming dynasty (1368 - 1644)",
            "Ming-Qing dynasties",
            "Miniatures (paintings)",
            "Miniaturist",
            "Minieh",
            "Mining",
            "Mining Lamps",
            "Mining engineer",
            "Minister",
            "Minneapolis",
            "Minnesota State Capitol",
            "Minority Leader",
            "Minstrel",
            "Minstrel (Music)",
            "Minstrel music",
            "Minute Man",
            "Miracle",
            "Miranda",
            "Miridae",
            "Miroku Bosatsu",
            "Mirror Lake",
            "Mirrors",
            "Mish&#x14D; school",
            "Mispec",
            "Missie",
            "Missiologie",
            "Missionaries",
            "Missionaries, Medical",
            "Missionary",
            "Missions to Blacks & Africa, Southern",
            "Missions to Jews",
            "Mississippi Freedom Summer",
            "Mississippi River",
            "Missouri River",
            "Mistmaiden",
            "Mistress",
            "Mistress of the Parsonage",
            "Mitchella repens",
            "Mitella nuda",
            "Miter",
            "Mites",
            "Mitosis",
            "Mitridae",
            "Mobcap",
            "Moccasin flower",
            "Moccasins",
            "Model ship",
            "Models (Clay, plaster, etc.)",
            "Models (representations)",
            "Modern dance",
            "Modern period (1910 - present)",
            "Modern period (1912 - present)",
            "Moehringia laberiflora",
            "Moel Siabod",
            "Moeurs et coutumes",
            "Mojave Desert",
            "Mold blown",
            "Mole crickets",
            "Moles (Animals)",
            "Molidae",
            "Mollusca (Sistematica)",
            "Mollusks",
            "Mollusks, Fossil",
            "Momoyama period (1573 - 1615)",
            "Monadnock",
            "Monarda punctata",
            "Monastery",
            "Moneses uniflora",
            "Monetary",
            "Money",
            "Monhegan Island",
            "Monique",
            "Monitor",
            "Monju",
            "Monk",
            "Monkeys",
            "Monmouth, Battle of, Freehold, N.J., 1778",
            "Monocle",
            "Monocotyledonae",
            "Monocotyledons",
            "Monogenea",
            "Monogenism and polygenism",
            "Monograms",
            "Monomonie",
            "Monoplacophora",
            "Monoplanes",
            "Monothalamea",
            "Monotremes",
            "Monotropa uniflora",
            "Monreale",
            "Monroe Street",
            "Monselice",
            "Monsters",
            "Monsters in art",
            "Mont Saint Michel",
            "Mont St. Michel",
            "Montana parnassia",
            "Montauk Point",
            "Monte Rosa",
            "Monterey",
            "Montgomery",
            "Montgomery Street",
            "Monticello",
            "Montigny",
            "Montmorency Falls",
            "Montreuil",
            "Monument Park",
            "Monuments",
            "Mood (Psychology)",
            "Moody",
            "Moon",
            "Moon bridge",
            "Moon hoax",
            "Moonlight",
            "Moor animals",
            "Moor ecology",
            "Moorish",
            "Moorish dress",
            "Moose",
            "Moraeas",
            "Moral Re-Armament (MRA)",
            "Morale",
            "Morality & Religious Prints",
            "Mordvins",
            "Moret",
            "Mormonism",
            "Mormyridae",
            "Mormyrus",
            "Morning",
            "Morning glory",
            "Morning-glory",
            "Morphology",
            "Morphology (Animals)",
            "Morris Island",
            "Morristown",
            "Mortality",
            "Mosaics",
            "Moscow",
            "Mosel River",
            "Moses (Biblical leader)",
            "Mosques",
            "Mosquitoes as carriers of disease",
            "Moss campion",
            "Moss forget-me-not",
            "Moss gentian",
            "Moss pink",
            "Mosses",
            "Mother Goose",
            "Mother and child",
            "Mother of US President",
            "Mother of pearl",
            "Mother-of-pearl",
            "Motherhood",
            "Mothers",
            "Moths in art",
            "Motion picture theaters",
            "Motion pictures",
            "Motion study",
            "Motor vehicle industry",
            "Motorboat",
            "Motorboats",
            "Motorcycles",
            "Motorcyclists",
            "Motors",
            "Motorsports",
            "Motown (Music)",
            "Mounds",
            "Mount Ancon",
            "Mount Bounaveau",
            "Mount Chocorua",
            "Mount Cotopaxi",
            "Mount Emei",
            "Mount Etna",
            "Mount Fuji",
            "Mount Hamilton",
            "Mount Hood",
            "Mount Horeb",
            "Mount McIntyre",
            "Mount Meru",
            "Mount Monadnock",
            "Mount Oliveto",
            "Mount Olympus",
            "Mount Orizaba",
            "Mount Pellegrino",
            "Mount Pico",
            "Mount Pilatus",
            "Mount Sinai",
            "Mount Tabor",
            "Mount Tom",
            "Mount Vernon",
            "Mount Vernon Street",
            "Mount Vesuvius",
            "Mount Washington",
            "Mountain ash tree",
            "Mountain cranberry",
            "Mountain goat",
            "Mountain goldenrod",
            "Mountain hemlock",
            "Mountain juniper",
            "Mountain ladyslipper",
            "Mountain laurel",
            "Mountain rose-bay",
            "Mountain sheep",
            "Mountains",
            "Mounting of microscope specimens",
            "Mourning",
            "Mourning groundsel",
            "Mourning jewelry",
            "Mouse",
            "Movie set",
            "Moxa",
            "Mozart",
            "Mpororo",
            "Mrs. Otcheson",
            "Mudfish",
            "Mudra",
            "Muff",
            "Muffler",
            "Muffs",
            "Mug",
            "Mughal dynasty (1526 - 1858)",
            "Mugshot",
            "Muhammad",
            "Mule",
            "Mullah",
            "Mullion Cove",
            "Multilingual communication",
            "Municipal Government",
            "Municipal ownership",
            "Municipal reformer",
            "Municipal water supply",
            "Mural painting and decoration",
            "Mural painting and decoration, Baroque",
            "Mural painting and decoration, Greco-Roman",
            "Mural painting and decoration, Italian",
            "Mural study",
            "Muralist",
            "Murder",
            "Murderer",
            "Muricidae",
            "Muridae",
            "Muromachi period (1333 - 1573)",
            "Muscari racemosum",
            "Muscidae",
            "Muscles",
            "Muses (Greek deities)",
            "Museum attendance",
            "Museum buildings",
            "Museum conservation methods",
            "Museum founder",
            "Museum trustees",
            "Museums",
            "Mushroom",
            "Mushroom culture",
            "Mushrooms",
            "Music",
            "Music critic",
            "Music festivals",
            "Music printing",
            "Music room",
            "Musical Theatre",
            "Musical films",
            "Musical instruments",
            "Musical instruments, Prehistoric",
            "Musical note",
            "Musicians",
            "Musidora",
            "Musique",
            "Musk-flower",
            "Muskox",
            "Muskrat",
            "Musophagidae",
            "Musquakee",
            "Mussel",
            "Mussel fisheries",
            "Musselburgh Bridge",
            "Mussels",
            "Mustaches",
            "Mutilation",
            "Mutillidae",
            "Mutineer",
            "Muttonchops",
            "Muybridge",
            "Mycetophilidae",
            "Mycologie",
            "Mycorrhizas",
            "Myiasis",
            "Mynah bird",
            "Myosotis alpestris",
            "Myriapoda",
            "Myrionemataceae",
            "Myron Bement Smith collection",
            "Mysidacea",
            "Mysidae",
            "Mystic",
            "Mythical",
            "Mythological animal",
            "Mythological subject",
            "Mythology",
            "Mythology, Classical",
            "Mythology, Classical, in art",
            "Mythology, Greek",
            "Mythology, Maasai",
            "Mythology, Maori",
            "Mythology, West African",
            "Mytilus",
            "Myxinidae",
            "Myxomycetes",
            "Myxosporidia",
            "NC-4 (Seaplane)",
            "NMAH Reception Suite",
            "Nabalus albus",
            "Nahant",
            "Nahuatl literature",
            "Naiad springbeauty",
            "Naididae",
            "Najadaceae",
            "Nakula",
            "Nala Damayanti",
            "Names",
            "Nanbokucho period (1333 - 1392)",
            "Nancy",
            "Nantes",
            "Nantucket",
            "Naples",
            "Napoleon",
            "Napoleonic Wars",
            "Napoleonic dress",
            "Nara period (645 - 794)",
            "Narcissus",
            "Narragansett Pier",
            "Nassidae",
            "Natchez, MS",
            "Naticidae",
            "National Guard",
            "National Park Service",
            "National Stamp Collection",
            "National Symbols",
            "National Treasures exhibit",
            "National emblems",
            "National parks and reserves",
            "Native American advisor",
            "Native American cultural intermediary",
            "Native American diplomat",
            "Native American interpreter",
            "Native American leader",
            "Native American orator",
            "Native American scout",
            "Native American warrior",
            "Nativism",
            "Nativity",
            "Natural History",
            "Natural Resource Occupations",
            "Natural arch",
            "Natural areas",
            "Natural disasters",
            "Natural gas",
            "Natural history illustrators",
            "Natural history museums",
            "Natural products",
            "Natural theology",
            "Naturalists",
            "Nature",
            "Nature (Aesthetics)",
            "Nature (Esthetics)",
            "Nature conservation",
            "Nature in art",
            "Nature in the Bible",
            "Nature photography",
            "Nature prints",
            "Nature stories",
            "Nature study",
            "Nature writer",
            "Naushon Island",
            "Nautical almanacs",
            "Nautical astronomy",
            "Nautical instruments",
            "Nautilida",
            "Nautilidae",
            "Nautiloidea",
            "Nautiloidea, Fossil",
            "Navaho country",
            "Naval History",
            "Naval architect",
            "Naval architecture",
            "Naval art and science",
            "Naval aviator",
            "Naval clerk",
            "Naval militia",
            "Naval operations",
            "Naval prints",
            "Naval seaman",
            "Naval warfare",
            "Navarro Ridge",
            "Navesink",
            "Navesink River",
            "Navies",
            "Navigation",
            "Navigator",
            "Navy Cross",
            "Navy chaplain",
            "Nawab",
            "Naxos",
            "Nayon",
            "Nazareth",
            "Nebulae",
            "Necklace",
            "Neckties",
            "Nectarine",
            "Necturus",
            "Needlepoint lace",
            "Needlework industry and trade",
            "Nelson",
            "Nelson's Column",
            "Nematoda",
            "Nematodes",
            "Nemertea",
            "Nemes, Geographical",
            "Neoclassicism",
            "Neoclassicism (Architecture)",
            "Neogastropoda",
            "Neolithic period (ca. 7000 - ca. 1700 BCE)",
            "Neptune (Planet)",
            "Neritidae",
            "Neritidae, Fossil",
            "Nervous system",
            "Neshaminy Creek",
            "Nest building",
            "Nests",
            "Nets",
            "Netting",
            "Neuroanatomy",
            "Neuroptera",
            "Neuroptera, Fossil",
            "Nevada County",
            "Nevada Falls",
            "Nevers",
            "Nevin",
            "New Acquisitions",
            "New Boston",
            "New Deal, 1933-1939",
            "New Haven",
            "New Haven, CT",
            "New Kingdom (ca. 1539 - 1075 BCE)",
            "New London",
            "New Mexican locust",
            "New Mexico Territory",
            "New Orleans, LA",
            "New World",
            "New World monkeys",
            "New Year's Day",
            "New Years",
            "New York Bay",
            "New York City Hall",
            "New York Harbor",
            "New York Post Office",
            "New York Public Library",
            "New York, NY",
            "New year",
            "Newark, NJ",
            "Newburgh",
            "Newspaper editor",
            "Newspaper publisher",
            "Newspaper seller",
            "Newspapers",
            "Newsroom",
            "Nez Percé language",
            "Nez Percés",
            "Niagara Falls",
            "Niagara Movement 1905-1909",
            "Nice",
            "Nicea",
            "Nichiren Buddhism",
            "Nicodemus",
            "Nicotiana",
            "Niederheimbach",
            "Night",
            "Night-blooming cereus",
            "Nightclub",
            "Nightclubs",
            "Nightlife",
            "Nike)",
            "Nikko",
            "Nile River",
            "Nilson, Johann Esaias",
            "Nimes",
            "Nineteenth century dress",
            "Nirwana",
            "Nishnabottana Bluffs",
            "Nitrogen",
            "Nitroglycerin",
            "Noah",
            "Noah's Ark",
            "Noah's ark",
            "Nobel Prize",
            "Nobel Prizes",
            "Nobility",
            "Nobody, Mr. (Fictitious character)",
            "Noctuidae",
            "Nocturne",
            "Nodding campion",
            "Nodding ladies tresses",
            "Nodding onion",
            "Nodosariata",
            "Noh",
            "Nomenclature",
            "Nomoli Style",
            "Non-representational",
            "Nonquitt",
            "Noon",
            "Nordic",
            "Norfolk, VA",
            "North Church",
            "North Conway",
            "Northern Qi dynasty (550 - 577)",
            "Northern Song dynasty (960 - 1127)",
            "Northern Wei dynasty (386 - 534)",
            "Northern Zhou dynasty (557 - 581)",
            "Northern anemone",
            "Northern bedstraw",
            "Northern butterbur",
            "Northern butterwort",
            "Northern dynasties (386 - 581)",
            "Northern hedysarum",
            "Northern ladyslipper",
            "Northern onion",
            "Northern right whale",
            "Northfork Creek",
            "Norton St. Philip",
            "Norwich",
            "Norwich Harbor",
            "Norwich, CT",
            "Nose ring",
            "Notes",
            "Notharctus",
            "Notodontidae",
            "Notostraca",
            "Notre Dame",
            "Notre Dame de Paris",
            "Novelists",
            "Novelties",
            "Novelty balloons",
            "Novelty songs",
            "Noyau cellulaire",
            "Nozzles",
            "Nō",
            "Nō in art",
            "Nubble Lighthouse",
            "Nubien",
            "Nuculidae",
            "Nuculoida",
            "Nuculoida, Fossil",
            "Nuda",
            "Nudibranchia",
            "Nudity",
            "Number theory",
            "Numerology",
            "Numismatics",
            "Nummulitidae, Fossil",
            "Nuremburg",
            "Nursemaid",
            "Nursery",
            "Nursery rhymes",
            "Nursing",
            "Nut",
            "Nutmeg (Spice)",
            "Nutmeg tree",
            "Nutrition",
            "Nuyorican Movement",
            "Nymph",
            "Nymph and Bittern",
            "Nymphula oryzalis",
            "O Kee Pa Ceremony",
            "O.T",
            "OSS",
            "Oak",
            "Oak Cliff",
            "Oak tree",
            "Oakland, CA",
            "Oar",
            "Oath",
            "Oats",
            "Oaxaca",
            "Obedience",
            "Obelisk",
            "Obelisks",
            "Oberammergau",
            "Oberwesel",
            "Observations",
            "Obsidian",
            "Obstetrician",
            "Occultism",
            "Occupations",
            "Ocean",
            "Ocean bottom",
            "Ocean liner",
            "Oceanographer",
            "Oceanographic instruments",
            "Oceans",
            "Oconee-bells",
            "Ocotillo",
            "Octopoda",
            "Octopodes",
            "Octopuses",
            "Ocypodidae",
            "Odd Fellows",
            "Odd Fellowship",
            "Odeon",
            "Odonata",
            "Odontornithes",
            "Odyssey",
            "Oedogoniaceae",
            "Oegopsida",
            "Oenothera",
            "Oenothera howardi",
            "Oenothera lavandalaefolia",
            "Oestridae",
            "Office",
            "Office Machines",
            "Office building",
            "Office equipment and supplies",
            "Officer",
            "Ohio River",
            "Oiseaux",
            "Ojibwa children",
            "Okame",
            "Okinokans",
            "Old Black Joe",
            "Old Book List",
            "Old Executive Office Building",
            "Old Fort Herkimer Church",
            "Old Lyme",
            "Old age",
            "Older people",
            "Oligochaeta",
            "Oliva",
            "Olive",
            "Olive branch",
            "Olive tree",
            "Olympic Medal",
            "Olympic medal",
            "Olympics",
            "Omote Senke school",
            "On postage stamps",
            "On the Water exhibit",
            "One-leaf-bog-orchid",
            "Onion",
            "Oniscidae",
            "Onteora",
            "Ontogeny",
            "Onychophora",
            "Opalescent River",
            "Opalinida",
            "Opera",
            "Opera (Music)",
            "Opera patron",
            "Operas",
            "Operational readiness",
            "Operational readiness (Military science)",
            "Ophelia",
            "Ophiuchus",
            "Ophiurida",
            "Ophiuridae",
            "Ophiuroidea",
            "Ophrys necrophylla",
            "Opiliones",
            "Opisthobranchia",
            "Opisthobranchia, Fossil",
            "Optical Devices",
            "Optical instruments",
            "Optics",
            "Optimism",
            "Opuntia imbricata",
            "Oral Surgeon",
            "Orange",
            "Orange polygala",
            "Orange-eye globemallow",
            "Oranges",
            "Orangutans",
            "Orator",
            "Oratory",
            "Orb",
            "Orbits",
            "Orchard",
            "Orchestra",
            "Orchestral (Music)",
            "Orchideeën",
            "Orchids",
            "Orchids in art",
            "Orchis",
            "Orchis rotundifolia",
            "Orchis spectabilis",
            "Ordens Menores)",
            "Orders",
            "Ordnance",
            "Ordnance, Rapid-fire",
            "Orejon",
            "Oreocarya virgata",
            "Organ",
            "Organ grinder",
            "Organ music",
            "Organic compounds",
            "Organized crime leader",
            "Oriana",
            "Orientation",
            "Origin",
            "Orion",
            "Oriskany",
            "Orizaba",
            "Orleans Territory",
            "Ornamental birds",
            "Ornamental combs",
            "Ornamental fishes",
            "Ornamental hairwork",
            "Ornamental horticulture",
            "Ornamental shrubs",
            "Ornamental trees",
            "Ornamentation",
            "Ornithological illustration",
            "Ornithologist",
            "Orobanche fasciculata",
            "Orontium aquaticum",
            "Orphan",
            "Orthalicidae",
            "Orthocarpus erianthus",
            "Orthocarpus tenuifolius",
            "Orthography and spelling",
            "Orthoptera",
            "Oscar",
            "Osiris",
            "Osprey",
            "Osteichthyes",
            "Ostracoda",
            "Ostracoda, Fossil",
            "Ostreidae",
            "Ostrich farming",
            "Ostrich farms",
            "Ostriches",
            "Oswego, NY",
            "Othello",
            "Otters",
            "Ottoman",
            "Ottoman period (1307 - 1922)",
            "Ouchy",
            "Outdoor life",
            "Outdoor recreation",
            "Outdoor sculpture",
            "Outer space",
            "Outerwear",
            "Outlaw",
            "Outrigger canoes",
            "Ouvrages illustrées",
            "Ovaries",
            "Overcoat",
            "Overland journeys to the Pacific",
            "Owl",
            "Owl's clover",
            "Owlflies",
            "Owls",
            "Ownership",
            "Oxalidaceae",
            "Oxalis",
            "Oxen",
            "Oxford",
            "Oxycoccus palustris",
            "Oxygen",
            "Oxyrhycha",
            "Oxystomata",
            "Oxytropia gracilis",
            "Oxytropis aepicola",
            "Oxytropis podocarpa",
            "Oxytropis splendens",
            "Oya Jizo",
            "Oyster culture",
            "Oyster fisheries",
            "Oyster hatcheries",
            "Oysters",
            "Oysters, Fossil",
            "Pachyderms",
            "Pachyloplus hirsutus",
            "Pachyloplus marginatus",
            "Pacific dogwood",
            "Pacific herring",
            "Pacific railroads",
            "Pacific railroads.",
            "Pacifist",
            "Paddestoelen",
            "Paddle steamers",
            "Paestum",
            "Paganism",
            "Pageants",
            "Pagoda",
            "Pails",
            "Paine",
            "Paint jar",
            "Paintbrush",
            "Painted",
            "Painted trillium",
            "Painters",
            "Painters, American",
            "Painting",
            "Painting, British",
            "Painting, Byzantine",
            "Painting, Chinese",
            "Painting, European",
            "Painting, French",
            "Painting, German",
            "Painting, Industrial",
            "Painting, Italian",
            "Painting, Japanese",
            "Paiute baskets",
            "Pala-Sena dynasty (750 - 1100)",
            "Palace",
            "Palace of Justice",
            "Palace of Nero",
            "Palace of Popes",
            "Palaeacanthocephala",
            "Palaemon",
            "Palaemonidae",
            "Palanquin",
            "Palatine Hill",
            "Palazzo Vecchio",
            "Paläobiologie",
            "Pale ladyslipper",
            "Pale pinesap",
            "Pale strawberry",
            "Paleobiogeography",
            "Paleobotanists",
            "Paleobotany",
            "Paleogeneral",
            "Paleogeography",
            "Paleography",
            "Paleontologist",
            "Paleontologists",
            "Paleontology",
            "Paleoontology",
            "Paleozic",
            "Palette",
            "Paléontologie",
            "Paléozoologie",
            "Palimpsests",
            "Palin",
            "Pallavicinia",
            "Palm",
            "Palm tree",
            "Palmistry",
            "Palms",
            "Pamela",
            "Pamphagodes",
            "Pamphlet",
            "Pan (Greek deity)",
            "Pan Africanism",
            "Panagachel Valley",
            "Panama City",
            "Pancreas",
            "Pangolins",
            "Panicum",
            "Panorama",
            "Panoramas",
            "Pansy",
            "Pansy violet",
            "Pantheon",
            "Panther",
            "Pantographs",
            "Pantomimes with music",
            "Papaw",
            "Paper",
            "Paper industry",
            "Paper work",
            "Papermaking",
            "Papers",
            "Papilionidae",
            "Papillons",
            "Parachutes",
            "Parachuting",
            "Parade",
            "Parades",
            "Paradise Valley",
            "Parallel Rules",
            "Parallels (Geometry)",
            "Parasites",
            "Parasitic plants",
            "Parasitism",
            "Parasitologist",
            "Parasol",
            "Parasols",
            "Parenthood",
            "Parinirvana",
            "Park Row",
            "Parka",
            "Parkhurst, Micajah, Mrs.",
            "Parks",
            "Parks (National), United States: Zion",
            "Parks, public",
            "Parliament",
            "Parliamentarian",
            "Parnassia fimbriata",
            "Parnassia montanesis",
            "Parnassians",
            "Parodies, French",
            "Paros",
            "Parrot",
            "Parrot pitcherplant",
            "Parrots",
            "Parry's penstemon",
            "Parsley",
            "Parterre d'Eau",
            "Parthenogenesis in animals",
            "Parthenon",
            "Participation, German",
            "Partridge",
            "Partridgeberry",
            "Partridges",
            "Partula",
            "Parvati",
            "Pasadena",
            "Passaic",
            "Passaic Meadows",
            "Passalidae",
            "Passementerie",
            "Passenger pigeon",
            "Passenger trains",
            "Passengers",
            "Passeriformes",
            "Passeroma cyanea",
            "Passiflora incarnata",
            "Passing Song",
            "Passion",
            "Past",
            "Paste (glass)",
            "Pastelist",
            "Pastor",
            "Pastry",
            "Patching",
            "Patent Model School Seats and Desks",
            "Patent Models, Graphic Arts",
            "Patent Models, Sewing Machines",
            "Patent Models, Textile Machinery",
            "Patent Office Building",
            "Patent Officer",
            "Patent model",
            "Patents",
            "Path",
            "Pathologist",
            "Pathology",
            "Patio",
            "Patmos",
            "Patriotic music",
            "Patriotism",
            "Patron of the arts",
            "Pattern design",
            "Patterns",
            "Paul",
            "Paussus",
            "Pavements, Mosaic",
            "Pavia",
            "Pavilion",
            "Pea",
            "Peace",
            "Peace Jubilee",
            "Peace activist",
            "Peace medal",
            "Peace pipe",
            "Peace sign",
            "Peace signs",
            "Peach",
            "Peach tree",
            "Peach-yellows",
            "Peacham",
            "Peacock",
            "Peacocks",
            "Pear",
            "Pear tree",
            "Pearl",
            "Pearl Street",
            "Pearl button industry",
            "Pearl everlasting",
            "Pearl fisheries",
            "Pearls",
            "Pears",
            "Peasant",
            "Peatpink",
            "Peddler",
            "Peddling",
            "Pedestal",
            "Pedestals",
            "Pediatrist",
            "Pedicularis bracteosa",
            "Pedicularis contorta",
            "Pedicularis groenlandica",
            "Pedicularis raremosa",
            "Pediment",
            "Pee Dee River",
            "Peel",
            "Peepshows - History",
            "Pegasus",
            "Peggy",
            "Pelagic fishes",
            "Pelican",
            "Pelt",
            "Peltaspermopsida",
            "Peltogaster",
            "Pelvic bones",
            "Pelvis",
            "Pelycosauria",
            "Penaeus",
            "Pencil",
            "Pencil industry",
            "Pendant",
            "Pendulum",
            "Penglai",
            "Penguins",
            "Penmanship",
            "Pennant",
            "Pennsylvania Academy of Fine Arts",
            "Pennsylvania Avenue",
            "Pennsylvania Avenue N.W.",
            "Pennsylvania Railroad",
            "Penologist",
            "Pens",
            "Pensacola",
            "Pensarn",
            "Penserosoo",
            "Pensions",
            "Penstemon",
            "Penstemon ambiguus",
            "Penstemon barbatus",
            "Penstemon confertus",
            "Penstemon digitalis",
            "Penstemon eatonii",
            "Penstemon erianthera",
            "Penstemon fruiticosus",
            "Penstemon lyallii",
            "Penstemon macranthus",
            "Penstemon menziesii",
            "Penstemon parryi",
            "Penstemon procerus",
            "Peony",
            "People with disabilities",
            "Pepper (Spice)",
            "Pepsis",
            "Peranium decipiens",
            "Perch",
            "Percidae",
            "Perciformes",
            "Percussion",
            "Percussionist",
            "Percy",
            "Perennial gaillardia",
            "Perennial phlox",
            "Performances",
            "Perfumes",
            "Perico",
            "Period of Division (220 - 589)",
            "Periodals",
            "Periodicals",
            "Periodidals",
            "Peritoneum",
            "Pero",
            "Peroxidase",
            "Perpetual calendars",
            "Perpetual motion",
            "Persephone",
            "Perseus",
            "Persian Gulf War, 1991",
            "Persian dress",
            "Persimmon",
            "Person with disability",
            "Personal Hygiene",
            "Personal narratives",
            "Personal narratives, English",
            "Personnel management",
            "Perspective",
            "Perturbation (Astronomy)",
            "Pests",
            "Pet care",
            "Petalostemon purpureum",
            "Petasites hyperboreus",
            "Peters Prints",
            "Petrarch",
            "Petrels",
            "Petrifaction",
            "Petrified Forest National Park",
            "Petrified forests",
            "Petroglyphs",
            "Petroleum industry",
            "Petrology",
            "Petrology & Volcanology",
            "Petromyzon",
            "Pets",
            "Pewter",
            "Pewterers",
            "Pezizomycetes",
            "Père David's deer",
            "Pêches",
            "Phacelia",
            "Phacelia linearis",
            "Phacelia parryi",
            "Phacelia serica",
            "Phaeophyceae",
            "Phagocytosis",
            "Phanerogams",
            "Pharmaceutical chemistry",
            "Pharmacist",
            "Pharmacology",
            "Pharmacy",
            "Phase rule and equilibrium",
            "Phasianella",
            "Phasianidae",
            "Phasmidae",
            "Pheasant",
            "Pheasants",
            "Phenology",
            "Philadelphia, PA",
            "Philadelphia, Pennsylvania",
            "Philanthropists",
            "Philatelic Hobby",
            "Philichthys xiphiae",
            "Philologist",
            "Philology",
            "Philosopher",
            "Philosophical anthropology",
            "Philosophy",
            "Philosophy and religion",
            "Philosophy of nature",
            "Philosophy, Ancient",
            "Philosophy, Medieval",
            "Philosophy, Renaissance",
            "Phisiology",
            "Phlogiston",
            "Phlox",
            "Phlox amoena",
            "Phlox caespitosa",
            "Phlox divaricata",
            "Phlox paniculata",
            "Phlox stansburyi",
            "Phlox subulate",
            "Phocidae",
            "Phocidae, Fossil",
            "Phoebe",
            "Phoenix",
            "Pholadacea",
            "Pholadomyoida, Fossil",
            "Phonograph",
            "Phoradendron flavescens",
            "Phoridae",
            "Phosphates",
            "Phospherescense",
            "Phosphorescence",
            "Photoengraving",
            "Photographer",
            "Photographic format",
            "Photographs on porcelain",
            "Photography",
            "Photography of animals",
            "Photography of birds",
            "Photography of fishes",
            "Photography, Artistic",
            "Photojournalist",
            "Photomicrography",
            "Photosynthesis",
            "Phototherapy",
            "Phrenology",
            "Phryganeidae",
            "Phrygian cap",
            "Phyllodoce empetriformis",
            "Phyllodoce grandiflora",
            "Phyllodoce intermedia",
            "Phylloxerinae",
            "Phylogeny",
            "Phymatidae",
            "Physa",
            "Physaria didymocarpa",
            "Physical anthropology",
            "Physical geography",
            "Physical geology",
            "Physical instruments",
            "Physical measurements",
            "Physicians",
            "Physicist",
            "Physics",
            "Physiognomy",
            "Physiognotrace",
            "Physiological effect",
            "Physiologists",
            "Physiology",
            "Physiology, Comparative",
            "Phytelephas",
            "Phytogeography",
            "Phytogepgraphy",
            "Pianist",
            "Piano music",
            "Piano music (Ragtime)",
            "Piano music, Arranged",
            "Pianoforte maker",
            "Pianos",
            "Piazza San Gregorio",
            "Picardy",
            "Picea engelmanni",
            "Pick",
            "Pickaxe",
            "Pickerelweed",
            "Pickle",
            "Pickpocket",
            "Pickwick Papers",
            "Picnic",
            "Picnics",
            "Pictorial works",
            "Picture books for children",
            "Picture-writing",
            "Pictures",
            "Pieridae",
            "Pieris mariana",
            "Pig",
            "Pigeon",
            "Pigeon breeds",
            "Pigeons",
            "Pigments",
            "Pike County",
            "Pikes Peak",
            "Pilaster",
            "Pilate",
            "Pilgrimage",
            "Pilgrims (New Plymouth Colony)",
            "Pillow",
            "Pilot",
            "Pilot guides",
            "Pilots",
            "Pimelodella",
            "Pimos",
            "Pince-nez",
            "Pindola",
            "Pine",
            "Pine tree",
            "Pineal gland",
            "Pineapple",
            "Pinebarren gentian",
            "Pineland aster",
            "Pineland blueberry",
            "Pingtuo",
            "Pinguicula elatior",
            "Pinguicula vulgaris",
            "Pink centaurium",
            "Pink fleabane",
            "Pink fumeroot",
            "Pink heather",
            "Pink hedysarum",
            "Pink mountain heather",
            "Pink pussytoes",
            "Pink twisted stalk",
            "Pinkshell azalea",
            "Pinnipedia",
            "Pinopsida",
            "Pinus albicaulis",
            "Pinus aristata",
            "Pinus contorta murrayana",
            "Pinus flexilis",
            "Pinus monophylla",
            "Pinus palustris",
            "Pinus taeda",
            "Pinxter bloom",
            "Pioneer",
            "Pioneer troops",
            "Pioneers",
            "Pipa",
            "Pipe",
            "Pipe Dance",
            "Piperaceae",
            "Pipes (Smoking)",
            "Pipes (smoking equipment)",
            "Piquet (Game)",
            "Pirates",
            "Pirates Cove",
            "Pisa",
            "Piscis Austrinus",
            "Pisidiidae",
            "Pistoia",
            "Pistol",
            "Pitcher",
            "Pitcher plant",
            "Pitchers",
            "Pithophora",
            "Pittidae",
            "Pituitary gland",
            "Placard",
            "Place de la Concorde",
            "Placodermi",
            "Placophora",
            "Plains",
            "Plains of Carthage",
            "Plaintiff",
            "Planaria",
            "Planariidae",
            "Planes & Pilots",
            "Planet",
            "Planetary theory",
            "Planets",
            "Planimeters",
            "Plankton",
            "Planorbidae",
            "Plant anatomy",
            "Plant breeding",
            "Plant cell membranes",
            "Plant cells and tissues",
            "Plant conservation",
            "Plant defenses",
            "Plant diseases",
            "Plant ecology",
            "Plant embryology",
            "Plant forms",
            "Plant hybridization",
            "Plant introduction",
            "Plant morphology",
            "Plant phenology",
            "Plant-water relationships",
            "Plantation life",
            "Plantation manager",
            "Plantations",
            "Planter",
            "Planters (containers)",
            "Planting",
            "Plantkunde",
            "Plants",
            "Plants and civilization",
            "Plants in art",
            "Plants in the Bible",
            "Plants, Cultivated",
            "Plants, Edible",
            "Plants, Fossil",
            "Plants, Medicinal",
            "Plants, Ornamental",
            "Plants, Sex in",
            "Plants, Useful",
            "Plaque",
            "Plaster casts",
            "Plate",
            "Plate glass",
            "Plateaus",
            "Plates",
            "Platte River",
            "Platyhelminthes",
            "Platypus",
            "Play",
            "Playground",
            "Playing",
            "Playing cards",
            "Playwright",
            "Plaza Hotel",
            "Pleiad",
            "Pleuroceridae",
            "Pleuronectidae",
            "Plovers",
            "Plow",
            "Plum",
            "Plum blossom",
            "Plum blossoms",
            "Plum tree",
            "Plumbing fixtures",
            "Plume anemone",
            "Plumed",
            "Plurality of worlds",
            "Plymouth",
            "Pneumatic-tube transportation",
            "Pneumatics",
            "Pneumonochlamyda",
            "Poaceae",
            "Pocket watch",
            "Podium",
            "Podocopida",
            "Podphyllum paltatum",
            "Poduridae",
            "Poem",
            "Poems",
            "Poetry",
            "Poets",
            "Poets, Japanese",
            "Pogonia divaricata",
            "Pogonia ophioglossoides",
            "Point Lobos",
            "Poisonous animals",
            "Poisonous fishes",
            "Poisonous plants",
            "Poisonous snakes",
            "Poissons",
            "Poker",
            "Poker chips",
            "Poland",
            "Polar bears",
            "Polarization (Electricity)",
            "Pole",
            "Polemonium viscosum",
            "Police",
            "Police brutality",
            "Police uniform",
            "Policeman",
            "Policemen",
            "Political",
            "Political Caricatures",
            "Political activist",
            "Political cartoonist",
            "Political organizations",
            "Political parties",
            "Political satire, English",
            "Political science",
            "Political scientist",
            "Politician",
            "Politicians",
            "Politics",
            "Polka (Dance)",
            "Polka (Music)",
            "Polkas",
            "Pollin",
            "Pollination by insects",
            "Pollution",
            "Polo",
            "Polo Mallet",
            "Polperro",
            "Polticians",
            "Polychaeta",
            "Polychaeta z Naples, Bay of",
            "Polychaete",
            "Polychromy",
            "Polycladida",
            "Polycodium stamineum",
            "Polycystina",
            "Polycystinea",
            "Polygala lutea",
            "Polygala paucifolia",
            "Polyglot",
            "Polygordius",
            "Polymorphism (Zoology)",
            "Polynices",
            "Polynoidae",
            "Polyphemidae",
            "Polyplacophora",
            "Polypodiopsida",
            "Polythalamea",
            "Polytrichaceae",
            "Polytrichopsida",
            "Pomacentridae",
            "Pomatias",
            "Pomatiasidae",
            "Pomegranate",
            "Pomo",
            "Pomona",
            "Pompeii",
            "Poncas Mountains",
            "Pond Run",
            "Ponds",
            "Pont Royal",
            "Pont Valentre",
            "Pont d'Avignon",
            "Pont de la Concorde",
            "Pont des Arts",
            "Pont du Gard",
            "Pont-y-Pant",
            "Ponte Santa Trinta",
            "Ponte Ticino",
            "Ponte Vecchio",
            "Pontederia cordata",
            "Pontiac, MI",
            "Pontoon bridges",
            "Pontoporeiidae",
            "Pool",
            "Poor",
            "Poor People's Campaign",
            "Pope",
            "Poplar tree",
            "Popocateptl",
            "Poppy",
            "Popular",
            "Popular Culture",
            "Popular culture",
            "Popular instrumental music",
            "Popular works",
            "Population",
            "Porcelain",
            "Porcelain crabs",
            "Porcelain, Asian",
            "Porcelain, Chinese",
            "Porcelain, French",
            "Porcellanidae",
            "Porch",
            "Porcupine",
            "Porcupine (Ship)",
            "Porostromata",
            "Porpoise",
            "Porpoises",
            "Port Arthur",
            "Port Henry",
            "Port Royal",
            "Port of Larnaca",
            "Porta San Paolo",
            "Porte St. Denis",
            "Porte St. Martin",
            "Porte de Guillaume",
            "Porte-bouquets",
            "Porte-fleurs",
            "Porteranthus trifoliatus",
            "Porters",
            "Portfolio",
            "Porth Dinlleyn",
            "Porthwen",
            "Portia",
            "Portland",
            "Portland Vase",
            "Portland, ME",
            "Portrait miniatures",
            "Portrait painters",
            "Portrait painting",
            "Portrait painting, American",
            "Portrait painting, Japanese",
            "Portrait prints",
            "Portrait prints, British",
            "Portraitist",
            "Portraits",
            "Portraits, American",
            "Portraits, British",
            "Portraits, Egyptian",
            "Portraits, Scottish",
            "Portuguese colonialism",
            "Post Office Structures",
            "Post horns",
            "Post office",
            "Post-impressionism (Art)",
            "Postage stamps",
            "Postage-stamp dealers",
            "Postal Administration",
            "Postal Employees",
            "Postal Stationery",
            "Postal service",
            "Postcard",
            "Postman",
            "Postmarks",
            "Postmaster General",
            "Postmasters",
            "Posy holders",
            "Potato",
            "Potentilla fruticosa",
            "Potentilla glaucophylla",
            "Potpourris (Piano)",
            "Pots",
            "Potted",
            "Potter's wheel",
            "Potters",
            "Pottery",
            "Pottery, Ancient",
            "Pottery, Asian",
            "Pottery, Chinese",
            "Pottery, Dutch",
            "Pottery, Etruscan",
            "Pottery, Greek",
            "Pottery, Iranian",
            "Pottery, Japanese",
            "Pottery, Turkish",
            "Pouch",
            "Poultry",
            "Poultry vendor",
            "Pourtalesia",
            "Poverty",
            "Powder horn",
            "Powder puff",
            "Power lines",
            "Power plant",
            "Powerbroker",
            "Powhattan",
            "Ppstage-stamps",
            "Prabhutaratna Buddha",
            "Practice",
            "Prague",
            "Prairie aster",
            "Prairie du Chien",
            "Prairie penstemon",
            "Prairie thistle",
            "Prairie-smoke",
            "Prayer",
            "Prayer beads",
            "Prayers",
            "Prayers and devotions",
            "Prayers for peace",
            "Pre-Raphaelitism",
            "Preacher",
            "Preaching",
            "Precious stones",
            "Precious stones, Artificial",
            "Precipitation (Meteorology)",
            "Prehistoric peoples",
            "Prehn",
            "Prelate",
            "Premier",
            "Preparatory sketch",
            "Presbyterian Church",
            "Present",
            "Presentation vases",
            "Preservation",
            "President of Republic of Texas",
            "Presidential Advisor",
            "Presidential Campaign of 1800",
            "Presidential Candidate",
            "Presidential Medal of Freedom",
            "Presidents",
            "Presidents' spouses",
            "Press",
            "Presses, Issues of",
            "Prevention",
            "Prices",
            "Prickly currant",
            "Prickly poppy",
            "Priest",
            "Primates",
            "Primates, Fossil",
            "Prime Minister",
            "Primitive",
            "Primrose",
            "Primrose violet",
            "Primula angustifolia",
            "Primula maccalliana",
            "Primula parryi",
            "Prince",
            "Princess",
            "Princeton University",
            "Principal",
            "Printed Material",
            "Printer",
            "Printers and presses",
            "Printers' marks",
            "Printing",
            "Printing & Production Equipment",
            "Printing on wood",
            "Printing plate",
            "Printing press",
            "Printing processes",
            "Printing surface",
            "Printmakers",
            "Printmaking",
            "Prints, Japanese",
            "Prints, Latin American",
            "Priscilla",
            "Prisodon",
            "Prison",
            "Prison cell",
            "Prisoner",
            "Prisoner of War",
            "Prisoners",
            "Prisoners and prisons",
            "Prisoners and prisons, French",
            "Prisons",
            "Private",
            "Private collections",
            "Private libraries",
            "Probabilities",
            "Proboscidea (Mammals), Fossil",
            "Procambarus",
            "Procellariiformes",
            "Procession",
            "Producer",
            "Professional",
            "Professional organizations",
            "Profile",
            "Program music",
            "Progress",
            "Prometheus (Greek deity)",
            "Promotional",
            "Proofreading",
            "Proserpine",
            "Proserpinidae",
            "Prosobranchia",
            "Prospect Park",
            "Prospect Rock",
            "Prospector",
            "Prosthesis",
            "Prostitute",
            "Prostitutes in art",
            "Protea",
            "Protection",
            "Protest march",
            "Protests",
            "Protists",
            "Protochordates",
            "Protoplasm",
            "Protozoa",
            "Protractor",
            "Protractors",
            "Protura",
            "Provenance",
            "Prudence",
            "Prunella vulgaris",
            "Pruning",
            "Prunus angustifolia",
            "Pselaphidae",
            "Pseudanodonta",
            "Pseudocymopterus montanus",
            "Pseudofossil",
            "Pseudotsuga mucronata",
            "Psilostrophe sparsiflora",
            "Psocoptera",
            "Psorospermosis",
            "Psyche",
            "Psychiatrist",
            "Psychologist",
            "Psychology",
            "Psychology, Applied",
            "Psychology, Comparative",
            "Psychology, Military",
            "Ptarmiganberry",
            "Pteridophyta",
            "Pteridophytae",
            "Pteridophyte",
            "Pteridopsida",
            "Pteridospermopsida",
            "Pterobranchia",
            "Pterophoridae",
            "Pteropoda",
            "Pterpoda",
            "Ptillidae",
            "Ptolemaic Dynasty (305 - 30 BCE)",
            "Public Official",
            "Public Works of Art Project",
            "Public health",
            "Public lands",
            "Public officers",
            "Public relations",
            "Public utilities",
            "Public works",
            "Publisher",
            "Publishers and publishing",
            "Publishers' catalogs",
            "Publishing",
            "Puccoon",
            "Puck",
            "Pueblos",
            "Pughe (Edward)",
            "Pulitzer Prize",
            "Pulley",
            "Pullman Porters",
            "Pulmonata",
            "Pulpit",
            "Pulpit Rock",
            "Pulsatilla ludoviciana",
            "Pulsatilla occidentalis",
            "Pulteney Bridge",
            "Pumpers, Hand",
            "Pumpkin",
            "Punching",
            "Punishment",
            "Punk (Music)",
            "Punta Arenas",
            "Pupae",
            "Pupidae",
            "Puppet",
            "Puppets",
            "Pure Land",
            "Pure Land Buddhism",
            "Purépecha language",
            "Puritains",
            "Puritan",
            "Puritan dress",
            "Puritanismus",
            "Puritans",
            "Purple butterwort",
            "Purple fairy lantern",
            "Purple monkey-flower",
            "Purple mountain violet",
            "Purple penstemon",
            "Purple prairieclover",
            "Purple saxifrage",
            "Purpura",
            "Purpura (Mollusks)",
            "Purpurea venosa",
            "Purse",
            "Pussy willow",
            "Pussy-ears",
            "Pussy-toes",
            "Putrefaction",
            "Putti",
            "Puzzles",
            "Pwllheli",
            "Pycnogonida",
            "Pygmy androsace",
            "Pyralidae",
            "Pyramid",
            "Pyramid Lake",
            "Pyrites",
            "Pyrola asarifolia",
            "Pyrola chlorantha",
            "Pyrola minor",
            "Pyrola secunda",
            "Pyxidanthera barbulata",
            "Pyxie",
            "Qajar period (1779 - 1925)",
            "Qianlong reign (1736 - 1796)",
            "Qilin",
            "Qin",
            "Qin dynasty (221 - 206 BCE)",
            "Qing dynasty (1644 - 1911)",
            "Quadrilles",
            "Quail",
            "Quails",
            "Quakerladies",
            "Quakers",
            "Quality",
            "Quamasia quamash",
            "Quantitative",
            "Quarry",
            "Quatrefoils",
            "Queen",
            "Queen Mother of the West",
            "Queen's slipper",
            "Queencup",
            "Queens",
            "Quena",
            "Quezaltenango",
            "Quill",
            "Quill-leaf tillandsia",
            "Quillwork",
            "Quilts",
            "Quiver",
            "Qur'an",
            "R., Doctor",
            "Rabbi",
            "Rabbit seller",
            "Rabbitbean",
            "Rabbits",
            "Race",
            "Race films",
            "Race relations",
            "Race riots",
            "Racetrack",
            "Rachel",
            "Racial Uplift",
            "Racing",
            "Racing automobiles",
            "Racketeer",
            "Radha",
            "Radicofane",
            "Radio",
            "Radio performer",
            "Radioactivity",
            "Radiolaria",
            "Radiotherapy",
            "Radium",
            "Raft",
            "Ragamala",
            "Ragged fringe-orchid",
            "Ragtime (Music)",
            "Ragwort",
            "Rail",
            "Railing",
            "Railroad",
            "Railroad builder",
            "Railroad conductors",
            "Railroad land grants",
            "Railroad law",
            "Railroad locomotives",
            "Railroad mail service",
            "Railroad promoter",
            "Railroad station",
            "Railroad tunnels",
            "Railroad yard",
            "Railroads",
            "Railroads and state",
            "Rain",
            "Rain Ceremony",
            "Rain and rainfall",
            "Rainbow",
            "Rainbows",
            "Raja",
            "Rajiformes",
            "Rake",
            "Raku pottery",
            "Ramayana",
            "Rams",
            "Ramshead ladyslipper",
            "Rana temporaria",
            "Rancher",
            "Randia dumetorum",
            "Range-finding",
            "Ranidae",
            "Raninidae",
            "Ranja script",
            "Ranunculus suksdorfii",
            "Rappers (Musicians)",
            "Raqqa ware",
            "Raquette Lake",
            "Rare animals",
            "Rare birds",
            "Rare insects",
            "Rasikapriya",
            "Rassentheorie",
            "Rates",
            "Rates and tolls",
            "Ratio and proportion",
            "Ratites",
            "Rats",
            "Rattenberg",
            "Rattle",
            "Rattlesnake Roat",
            "Rattlesnakes",
            "Ravana",
            "Raven",
            "Ravenna",
            "Ravens",
            "Rayless groundsel",
            "Raymond",
            "Rays (Fishes)",
            "Rāma (Hindu deity)",
            "Readers (Primary)",
            "Reading",
            "Real Estate",
            "Real estate agent",
            "Rear Admiral",
            "Rebecca",
            "Rebel",
            "Reconstruction",
            "Reconstruction, U.S. History, 1865-1877",
            "Recreation",
            "Recruiting and enlistment",
            "Rector",
            "Red buckeye",
            "Red chokeberry",
            "Red columbine",
            "Red comandra",
            "Red dewberry",
            "Red larkspur",
            "Red lily",
            "Red maple",
            "Red monkeyflower",
            "Red pinesap",
            "Red pitcherplant",
            "Red trillium",
            "Red willowweed",
            "Red-helmet",
            "Reddition aux Britanniques, 1812",
            "Redlands",
            "Redstem saxifrage",
            "Redwood Falls",
            "Redwoods",
            "Referee",
            "Refinery",
            "Reflecting pool",
            "Reform",
            "Reformers",
            "Refraction, Double",
            "Refrigeration and refrigerating machinery",
            "Refrigerators",
            "Refugee",
            "Regalia (Insignia)",
            "Regeneration (Biology)",
            "Regent",
            "Regimental histories",
            "Regular-Faced Convex Polyhedra",
            "Regulus Missile Mail",
            "Reign of Akbar (1556 - 1605)",
            "Reign of Jahangir (1605 - 1627)",
            "Reign of Shah Jahan (1628 - 1658)",
            "Reincarnation",
            "Reindeer",
            "Reins",
            "Relief",
            "Relief seal",
            "Religion",
            "Religion and Spirituality",
            "Religion and mythology",
            "Religion and science",
            "Religious artist",
            "Religious groups",
            "Religious leader",
            "Reliques of Ancient English Poetry",
            "Relocation",
            "Renaissance",
            "Renaissance dress",
            "Renovation (Architecture)",
            "Renwick Gallery",
            "Repairman",
            "Repertory Theatre",
            "Reporter",
            "Repoussé work",
            "Reproduction",
            "Reptile",
            "Reptiles",
            "Reptiles as pets",
            "Reptiles, Fossil",
            "Republic",
            "Rescue work",
            "Research institutes",
            "Research vessels",
            "Researcher",
            "Reservoirs",
            "Resignation",
            "Resins, Fossil",
            "Resist dyeing",
            "Resistance",
            "Respiration",
            "Respiratory organs",
            "Restaurant",
            "Restaurants",
            "Restaurateur",
            "Retail",
            "Retail Business",
            "Retailer",
            "Retalhuleu",
            "Retired",
            "Revenue stamps",
            "Revenue-stamps",
            "Review of troops",
            "Revival",
            "Revivals",
            "Revolution and the New Nation",
            "Revolutionary",
            "Revues",
            "Récif corallien",
            "Rhabditophora",
            "Rhabdocoelida",
            "Rhamnaceae",
            "Rheinfels",
            "Rhetoric, Ancient",
            "Rhexia virginica",
            "Rhine River",
            "Rhinoceros (Genus)",
            "Rhinoceroses",
            "Rhizocephala",
            "Rhizopoda",
            "Rhizostomeae",
            "Rhododendron",
            "Rhododendron albiflorum",
            "Rhododendron californicum",
            "Rhododendron carolinianum",
            "Rhododendron catawbiense",
            "Rhododendron maximum",
            "Rhododendron occidentale",
            "Rhododendron speciosum",
            "Rhododendrons",
            "Rhone River",
            "Rhone Valley",
            "Rhynchocephalia",
            "Rhynchonellata",
            "Rhynchophora",
            "Rhythm and blues (Music)",
            "Rialroad stories",
            "Ribbon",
            "Ribes lacustre",
            "Ribes species",
            "Riccia",
            "Rice",
            "Rice farming",
            "Rice weevil",
            "Rice wines",
            "Rich Man and Lazarus",
            "Ridgefield",
            "Riding",
            "Riding Crop",
            "Riesengebirge",
            "Rifle",
            "Rifles",
            "Right whales",
            "Rigi",
            "Rijsord",
            "Riker's (Brand name)",
            "Ring",
            "Rings",
            "Rio Mancos",
            "Rio de Janeiro (rj)",
            "Rip Van Winkle",
            "Ripple Lake",
            "Rishi",
            "Rissoidae",
            "Rissoina",
            "Rites and ceremonies",
            "Rituals (events)",
            "Riva degli Schiavoni",
            "River Avon",
            "River Thames",
            "River scenes & river life",
            "River surveys",
            "Riverbank gentian",
            "Riverboat",
            "Riverboat captain",
            "Rivers",
            "Riverscape",
            "Riveting",
            "Road Transportation",
            "Roads",
            "Robber flies",
            "Robe",
            "Robin",
            "Robinia neomexicana",
            "Robins",
            "Robots",
            "Robots and Automatons",
            "Roccagiovine",
            "Roche",
            "Rochester",
            "Rochester, NY",
            "Rock Creek",
            "Rock Creek Canyon",
            "Rock Creek Park",
            "Rock Creek Park (Washington, D.C.)",
            "Rock Island",
            "Rock Tower",
            "Rock and roll (Music)",
            "Rock formation",
            "Rock of Gibraltar",
            "Rock paintings",
            "Rock salt",
            "Rock willow",
            "Rock wormwood",
            "Rockefeller Chapel",
            "Rocker Creek",
            "Rocket",
            "Rocketry",
            "Rockets (Aeronautics)",
            "Rockets (Ordnance)",
            "Rocking Horse",
            "Rocking chair",
            "Rockland Lake",
            "Rocks",
            "Rocks, Siliceous",
            "Rockville",
            "Rocky Mountain locust",
            "Rocky mountain cassiope",
            "Rocky mountain kalmia",
            "Rocky mountain rhododendron",
            "Rocky mountain twayblade",
            "Rodents",
            "Rodents, Fossil",
            "Rodeos",
            "Rodman",
            "Roe deer",
            "Roller skates",
            "Roller skating",
            "Roman Forum",
            "Roman Period (30 BCE - 395 CE)",
            "Roman type",
            "Romance",
            "Romanzoffia sitchensis",
            "Romein (lettertype)",
            "Romeo and Juliet",
            "Romneya coulteri",
            "Roof",
            "Rookwood pottery",
            "Rooster",
            "Roots (Botany)",
            "Rope",
            "Rope skipping",
            "Rosa bourgeauiana",
            "Rosa species",
            "Rosaceae",
            "Rose Marie",
            "Rose gentian",
            "Rose mallow",
            "Rose paintbrush",
            "Rose pogonia",
            "Rose-bay rhododendron",
            "Rosebud orchid",
            "Rosenwald Museum",
            "Roses",
            "Rosporden",
            "Ross",
            "Rostroconchia",
            "Rotation",
            "Rotifera",
            "Rotterdam",
            "Rouen",
            "Rouen Cathedral",
            "Round Hill Road",
            "Roundleaf orchis",
            "Roundleaf sundew",
            "Rouseville",
            "Rowboat",
            "Rowing",
            "Roxbury, MA",
            "Royal",
            "Royal Oak",
            "Royal collar",
            "Royal forests",
            "Royal gardens",
            "Royalty",
            "Rubaiyat",
            "Rubber",
            "Rubiaceae",
            "Rubrication",
            "Rubus",
            "Rubus argutus",
            "Rubus articus",
            "Rubus parviflorus",
            "Rubus pedatus",
            "Rucksack",
            "Rue Dominique Conte",
            "Rue San Jacques",
            "Rue de Honore",
            "Rue de Pyramides",
            "Rue de Village",
            "Rue du Puits Sale",
            "Ruff",
            "Rug",
            "Rugby football",
            "Rugosa",
            "Rugs",
            "Rugs, Persian",
            "Ruins",
            "Rukmini",
            "Rule, Calculating",
            "Rule, Measuring",
            "Ruled-line painting",
            "Ruler",
            "Rulers and Aristocracy",
            "Ruminants",
            "Running script",
            "Rural areas",
            "Rural conditions",
            "Rural life",
            "Rush",
            "Rush Street Bridge",
            "Russian Castle",
            "Rustic",
            "Ruyi",
            "Ryder",
            "Rye",
            "S?afavid dynasty, 1501-1736",
            "Saalfeld",
            "Sabbatia angularis",
            "Sabbatia stellaris",
            "Saber",
            "Sabina",
            "Sabine",
            "Sabines",
            "Sac and Fox",
            "Saco Bay",
            "Sacrifice",
            "Saddle",
            "Sadhu",
            "Safari",
            "Safaris",
            "Safe",
            "Safecracker",
            "Safety",
            "Sage",
            "Sagitta",
            "Sagittaria cuneata",
            "Sagittarius",
            "Sagittoidea",
            "Saguaro cactus",
            "Sahara Desert",
            "Sailboats",
            "Sailing Ships",
            "Sailing ships",
            "Sailor",
            "Sailors",
            "Saint Anne's River",
            "Saint Cloud",
            "Saint Croix River",
            "Saint Cyr",
            "Saint Germain",
            "Saint Germaine-des-Près",
            "Saint Goarshausen",
            "Saint Johns River",
            "Saint Martin's Bridge",
            "Saint Mihiel",
            "Saint Omer",
            "Saint Paul",
            "Saint Peter's River",
            "Saint Severin",
            "Saint Valery-sur-Somme",
            "Saints",
            "Saite Dynasty 26 (664 - 525 BCE)",
            "Sake",
            "Salamanders",
            "Salamandra",
            "Salem",
            "Sales catalogues",
            "Salix",
            "Salix discolor",
            "Salix drummondiana",
            "Salix nivalis",
            "Salix petrophila",
            "Salix vestita",
            "Saljuq period (1037 - 1300)",
            "Salmon",
            "Salmon fisheries",
            "Salmon fishing",
            "Salmonidae",
            "Salome",
            "Salon orchestra music",
            "Salsa (Music)",
            "Salsify",
            "Salt Lake City, UT",
            "Salt River Mountains",
            "Salter's Beach",
            "Saltmarsh rosegentian",
            "Saltwood Castle",
            "Salvari",
            "Salvation",
            "Salvation army",
            "Salvia funerea",
            "Salzig",
            "Samantabhadra",
            "Samaria",
            "Samarra ware",
            "Sambucas pubens",
            "Samurai",
            "Samurai in art",
            "San Angel",
            "San Antonio",
            "San Francisco Bay",
            "San Francisco, CA",
            "San Giorgio",
            "San Giorgio Maggiore",
            "San Isidro",
            "San José scale",
            "San Luis Obispo",
            "San Mateo",
            "San Piero a Grado",
            "San Remo",
            "San Trovaso Quarter",
            "San Xavier Mission",
            "San diego mariposa",
            "Sanbiza",
            "Sand myrtle",
            "Sand phacelia",
            "Sand verbena",
            "Sandals, Prehistoric",
            "Sanguinaria canadensis",
            "Sanifoiga adscendeus",
            "Sanitary Commission Fair",
            "Sanitary affairs",
            "Sanitation",
            "Sanitation worker",
            "Sanskrit",
            "Sansom Street",
            "Santa Barbara Channel",
            "Santa Claus",
            "Santa Francesca Romana",
            "Santa Maria",
            "Santa Maria Del Fiore",
            "Santa Maria dell'Isola",
            "Santa Maria della Salute",
            "Santa Rosa Island",
            "Santo Domingo",
            "Santorin",
            "Saparo",
            "Sapi-Portuguese style",
            "Sapindales",
            "Sapotaceae",
            "Sappho",
            "Sarah A. Stevens",
            "Sarasvati",
            "Saraswati",
            "Saratoga",
            "Sarcodes sanguinea",
            "Sarcophagi",
            "Sarcophagidae",
            "Sardine fisheries",
            "Sarracenia catesaei",
            "Sarracenia drummondii",
            "Sarracenia flava",
            "Sarracenia jonesii",
            "Sarracenia minor",
            "Sarracenia minor x psittacina",
            "Sarracenia orephila",
            "Sarracenia psittacina",
            "Sarracenia purpurea",
            "Sarracenia purpurea venosa",
            "Sarracenia rubra",
            "Sarrancenia drummondii xs rubra",
            "Sash",
            "Sash and Blind Factory",
            "Saskatoon",
            "Satellites",
            "Satin stitch",
            "Satinleaf goldenhead",
            "Satirist",
            "Satyr",
            "Satyridae",
            "Satyrs (Greek mythology)",
            "Saucer",
            "Sauerkraut Row",
            "Sauli",
            "Sault Ste. Marie",
            "Sausages",
            "Sausalito",
            "Saussurea",
            "Saussurea densa",
            "Savannah",
            "Savannah Harbor",
            "Savannah, GA",
            "Saw-flies",
            "Sawflies",
            "Saws",
            "Saxifraga bronchialis",
            "Saxifraga caespitosa",
            "Saxifraga lyallii",
            "Saxifraga oppositifolia",
            "Saxifragaceae",
            "Saxifrage",
            "Saxophones",
            "Saxophonist",
            "São João Baptista de Ajudá (Benin)",
            "Scabbard",
            "Scale",
            "Scale Rules",
            "Scale insects",
            "Scallops",
            "Scallops, Fossil",
            "Scalp Dance",
            "Scaphopoda",
            "Scaphopoda, Fossil",
            "Scarabaeidae",
            "Scarf",
            "Scarlet elder",
            "Scarlet gilia",
            "Scarlet globe-mallow",
            "Scarlet loco",
            "Scarlet mariposa",
            "Scenographer",
            "Scepter",
            "Schaffhausen",
            "Schenectady, NY",
            "Schistosoma haematobium",
            "Schizocodon soldanelloides",
            "Schleissheim Palace",
            "Scholar",
            "Scholarly organization",
            "Scholarships, fellowships, etc",
            "Scholasticism",
            "School for Scandal",
            "School gardens",
            "Schools",
            "Schottisches",
            "Schriftprobe",
            "Schroon Lake",
            "Schuyler",
            "Schuylkill River",
            "Science",
            "Science and Technology",
            "Science fiction, American",
            "Science fiction, French",
            "Science museums",
            "Science rooms and equipment",
            "Science, Ancient",
            "Science, Medieval",
            "Sciences naturelles",
            "Scientific",
            "Scientific Theorist",
            "Scientific apparatus",
            "Scientific apparatus and instruments",
            "Scientific applications",
            "Scientific expeditions",
            "Scientists",
            "Scissors",
            "Scissurellidae",
            "Scleractina",
            "Scleractinia",
            "Scolopendra",
            "Scolytidae",
            "Scorpio",
            "Scorpion",
            "Scorpions",
            "Scottish deerhound",
            "Scout",
            "Scrapbook",
            "Screen",
            "Screenwriter",
            "Scrimshaw",
            "Scripts (writing)",
            "Scroll",
            "Scrolls (information artifacts)",
            "Scrophulariaceae",
            "Sculpting tool",
            "Sculptors",
            "Sculpture",
            "Sculpture model",
            "Sculpture study",
            "Sculpture, Baroque",
            "Sculpture, Chinese",
            "Sculpture, Egyptian",
            "Sculpture, German",
            "Sculptures",
            "Scutellaria serrata",
            "Scutelleridae",
            "Scydmaenidae",
            "Scylla",
            "Scyllaridae",
            "Scyphocrinus",
            "Scyphozoa",
            "Scythe",
            "Sea",
            "Sea Bright",
            "Sea anemones",
            "Sea birds",
            "Sea captain",
            "Sea cucumbers",
            "Sea horse",
            "Sea monsters",
            "Sea of Tiberias",
            "Sea otter",
            "Sea pansies",
            "Sea pens",
            "Sea snakes",
            "Sea songs",
            "Sea squirts",
            "Sea urchins",
            "Sea urchins, Fossil",
            "Sea-serpent",
            "Seagull",
            "Seal",
            "Seal style",
            "Sealing",
            "Seals (Animals)",
            "Seals (Animals), Fossil",
            "Seals (Numismatics)",
            "Seaman",
            "Seaplanes",
            "Search and rescue operations",
            "Seas",
            "Seascape",
            "Seashore animals",
            "Seashore biology",
            "Seashore ecology",
            "Seasons",
            "Seated",
            "Seating",
            "Seating (Furniture)",
            "Seawater",
            "Seaweed",
            "Secernentea",
            "Secessionist",
            "Seconnet Point",
            "Secret Service",
            "Secret societies",
            "Secretary",
            "Secretary of Agriculture",
            "Secretary of Commerce",
            "Secretary of Defense",
            "Secretary of Interior",
            "Secretary of Labor",
            "Secretary of State",
            "Secretary of Treasury",
            "Secretary of War",
            "Secretary of the Navy",
            "Security guards",
            "Sedgely Park",
            "Sedimentation and deposition",
            "Sediments",
            "Sedum stenopetalum",
            "See saw",
            "Seeds",
            "Seekonk River",
            "Sego lily",
            "Segovia",
            "Segregation",
            "Seige and Surrender of British Forces at Yorktown, Virginia",
            "Seine River",
            "Seining",
            "Seishi",
            "Seizan school",
            "Selections from the Abraham Lincoln Collection",
            "Self-culture",
            "Self-heal",
            "Self-liberation",
            "Self-portraits",
            "Selkirk Mountains",
            "Selling",
            "Selma to Montgomery Marches",
            "Semi-cursive script",
            "Seminary founder",
            "Seminole War, 2nd, 1835-1842",
            "Semse organs",
            "Senator",
            "Senators",
            "Seneca Falls",
            "Seneca Lake",
            "Seneca River",
            "Senecia triangularis",
            "Senecio burkei",
            "Senecio canus",
            "Senecio lugens",
            "Senecio pauciflorus",
            "Senecio species",
            "Senke Shin school",
            "Senke school",
            "Sense organs",
            "Senses",
            "Senses and sensation",
            "Separation (Psychology)",
            "Sepulchral monuments",
            "Sepulchral monuments industry",
            "Sepulchral monuments, Victorian",
            "Sequoia",
            "Sequoia gigantea",
            "Sequoia tree",
            "Sergestes",
            "Sergestidae",
            "Sericulture",
            "Sermon",
            "Sermon on the Mount",
            "Serpent worship",
            "Serpents",
            "Serranidae",
            "Sertulariidae",
            "Servant",
            "Servants",
            "Service",
            "Service worker",
            "Seto pottery",
            "Settee",
            "Settlement",
            "Seven Years War",
            "Seventeenth century dress",
            "Seventh Street",
            "Sewing",
            "Sewing Machines",
            "Sewing machine",
            "Sewing machines",
            "Sewing tool",
            "Sex",
            "Sex (Biology)",
            "Sex differences",
            "Sextants",
            "Sexual dimorphism (Animals)",
            "Sexual selection in animals",
            "Sexuality",
            "Sèvres porcelain",
            "Sgraffito ware",
            "Shackles",
            "Shad",
            "Shad fisheries",
            "Shadbush",
            "Shahnama",
            "Shailendra period (ca. 750 - ca. 850)",
            "Shakers",
            "Shakespeare",
            "Shaking hands",
            "Shako",
            "Shakyamuni",
            "Shakyamuni Buddha",
            "Sham Fight",
            "Shamisen",
            "Shamrocks",
            "Shang dynasty (ca. 1600 - ca. 1050 BCE)",
            "Shark",
            "Sharks",
            "Shattagee River",
            "Shawangunk Mountains",
            "Shawl",
            "Sheaf",
            "Shed",
            "Sheep",
            "Sheep-tick",
            "Sheet music covers",
            "Sheffield plate",
            "Shell-fish fisheries",
            "Shelley",
            "Shellfish",
            "Shellfish culture",
            "Shellfish fisheries",
            "Shellfish trade",
            "Shells",
            "Shells (Ammunition)",
            "Shells in art",
            "Shells in literature",
            "Shelving (Furniture)",
            "Sheng",
            "Shepherd",
            "Sheridan",
            "Sheriff",
            "Sherman",
            "Shide",
            "Shield",
            "Shields",
            "Shih-te",
            "Shikishi",
            "Shinto",
            "Ship \"Bristol Packet\"",
            "Ship Models",
            "Ship chandlers",
            "Ship designer",
            "Ship owner",
            "Shipbuilder",
            "Shipbuilding",
            "Shipbuilding industry",
            "Shipmaster",
            "Shipping",
            "Ships",
            "Ships, Concrete",
            "Shipwreck",
            "Shipwreck survival",
            "Shipwrecks",
            "Shipyard",
            "Shirley House",
            "Shiva",
            "Shoemaker",
            "Shoes",
            "Shooting",
            "Shooting star",
            "Shop front",
            "Shopping",
            "Shore",
            "Shore birds",
            "Shore flies",
            "Shorthand",
            "Shorthand, Chinook",
            "Shortia galacifolia",
            "Shortspur columbine",
            "Shoshone Falls",
            "Shotguns",
            "Shoulder",
            "Shoulder girdle",
            "Shovel",
            "Show windows",
            "Shower",
            "Showman",
            "Showy aster",
            "Showy fleabane",
            "Showy ladyslipper",
            "Showy milkweed",
            "Showy orchid",
            "Showy orchis",
            "Showy oxytrope",
            "Showy pyrola",
            "Shōgetsudō Ko school",
            "Shrews",
            "Shri Nathji",
            "Shrimp",
            "Shrimp fisheries",
            "Shrimps",
            "Shrine",
            "Shrine/Altar",
            "Shrubs",
            "Shuten Doji",
            "Shylock",
            "Siberian onion",
            "Siblings",
            "Siboga Expedition",
            "Sibyl",
            "Sicily",
            "Sidebells pyrola",
            "Sidesaddle goldenrod",
            "Sidney N. Shure Collection",
            "Sidon",
            "Siege of Boston",
            "Siege of Vicksburg",
            "Siege warfare",
            "Siena",
            "Siena Cathedral",
            "Sierra Blanca Range",
            "Sierra Nevada Mountains",
            "Sierre",
            "Sieversia ciliata",
            "Sightseers",
            "Sign painter",
            "Signal flags",
            "Signatures",
            "Signer of Constitution",
            "Signer of Declaration",
            "Signs and signboards",
            "Signs and symbols",
            "Silage machinery",
            "Silas",
            "Silene acaulis",
            "Silene caroliniana",
            "Silene latifolia",
            "Silene multicaulis",
            "Silene virginica",
            "Silenus",
            "Silhouette",
            "Silhouettes",
            "Silhouettist",
            "Silk",
            "Silk industry",
            "Silk weaving",
            "Silkworms",
            "Silo",
            "Silphidae",
            "Silurian Geologic Period",
            "Siluridae",
            "Silurien",
            "Silver",
            "Silver Cascade",
            "Silver Lake",
            "Silver mines and mining",
            "Silver-plated ware",
            "Silverberry",
            "Silvering",
            "Silversides",
            "Silversmith",
            "Silversmiths",
            "Silverwork",
            "Sin",
            "Sinai",
            "Sinai Desert",
            "Singer",
            "Singers",
            "Singers (Musicians)",
            "Single-leaf pine",
            "Sinks (Plumbing fixtures)",
            "Sino-Japanese War, 1894-1895",
            "Siout",
            "Siphonaria",
            "Siphonophora",
            "Sipunculidea",
            "Sir Galahad",
            "Siren",
            "Siren lacertina",
            "Sirenia",
            "Sirenidae",
            "Siricidae",
            "Sisyrinchium angustifolium",
            "Sisyrinchium species",
            "Sita",
            "Sitcoms",
            "Sitka",
            "Sitotroga cerealella",
            "Skat (Game)",
            "Skates",
            "Skates (Fishes)",
            "Skating",
            "Skeleton",
            "Skeleton flower",
            "Skeleton weed",
            "Skeletons",
            "Sketch Book of Geoffry Crane",
            "Sketch from life",
            "Sketchbook",
            "Sketching",
            "Skilled labor",
            "Skin",
            "Skinks",
            "Skull",
            "Skunk",
            "Skunk cabbage",
            "Sky",
            "Skylight",
            "Skyscraper",
            "Skyscrapers",
            "Slave Dance",
            "Slave hire system",
            "Slave owner",
            "Slave trader",
            "Slavery",
            "Slavery and Islam",
            "Slavery and the church",
            "Slavery in literature",
            "Slavey language",
            "Sledding",
            "Sleds & sleighs",
            "Sleep",
            "Sleeping",
            "Sleeping Beauty",
            "Sleepwear",
            "Sleigh",
            "Sleighing",
            "Slender agoseris",
            "Slender cotton-grass",
            "Slender ladies tresses",
            "Slender shootingstar",
            "Slicer",
            "Slide Rules",
            "Slide-rule",
            "Slim larkspur",
            "Sling",
            "Slippers",
            "Sloths",
            "Sloths, Fossil",
            "Slug-worms",
            "Slugs (Mollusks)",
            "Small cranberry",
            "Small purple fringe orchid",
            "Small pyrola",
            "Small tiger lily",
            "Small yellow ladyslipper",
            "Smallmouth bass",
            "Smell",
            "Smiling",
            "Smithsonian Institution",
            "Smithsonian buildings",
            "Smithy",
            "Smock",
            "Smocking",
            "Smoke",
            "Smokestack",
            "Smokestacks",
            "Smoking",
            "Smoking Horses",
            "Smoking Implements",
            "Smoking material",
            "Smoking the Shield",
            "Smooth yellow violet",
            "Snails",
            "Snake River",
            "Snakes",
            "Snapping shrimps",
            "Snipe",
            "Snipe shooting",
            "Snipes",
            "Snood",
            "Snow",
            "Snow plant",
            "Snow willow",
            "Snowberry",
            "Snowflakes",
            "Snowshoe Dance",
            "Snowshoes",
            "Soap",
            "Soccer",
            "Social Conditions",
            "Social and civic facilities",
            "Social and moral questions",
            "Social aspects",
            "Social conditions",
            "Social conflict",
            "Social life and customs",
            "Social life and customs, 1868-1912",
            "Social reform",
            "Social reformer",
            "Social reformers",
            "Social sciences",
            "Social skills",
            "Social stationery",
            "Social worker",
            "Socialite",
            "Sociedad Economica",
            "Societies",
            "Society",
            "Society and social change",
            "Society of the Cincinnati",
            "Society publications",
            "Sociologist",
            "Sociology",
            "Soda Butte Creek",
            "Sofa",
            "Soft-shelled turtles",
            "Soil management",
            "Soils",
            "Solanaceae",
            "Solar eclipses",
            "Soldiers",
            "Soldiers' monuments",
            "Sole",
            "Solea",
            "Solenodon",
            "Solenogasters",
            "Solenogastres",
            "Solidago oreophila",
            "Solitaire (Bird)",
            "Solola",
            "Solpugida",
            "Solution (Chemistry))",
            "Sombrero",
            "Somnambula",
            "Son of US President",
            "Song dynasty (960 - 1279)",
            "Song sparrow",
            "Songbirds",
            "Songs (High voice) with orchestra",
            "Songs (Low voice) with piano",
            "Songs (Medium voice) with piano",
            "Songs with harpsichord",
            "Songs with instrumental ensemble",
            "Songs with orchestra",
            "Songs with piano",
            "Songs with piano, Arranged",
            "Songs, Eskimo",
            "Songs, Haida",
            "Songwriter",
            "Sonnets, American",
            "Soochow",
            "Soprano",
            "Sorbonne",
            "Sorbus sambucifolia",
            "Sordariomycetes",
            "Sorex",
            "Sororities",
            "Sorrento",
            "Sorrow",
            "Soul (Music)",
            "Sound",
            "Sound Beach",
            "Sound Devices",
            "Sound production by animals",
            "Sound production in animals",
            "Sound recordings",
            "Sounding Statues of Memnon",
            "Sounding and soundings",
            "Soup",
            "South African War, 1899-1902",
            "South Asian and Himalayan Art",
            "South Market Street",
            "Southeast Asian Art",
            "Southern Song dynasty (1127 - 1279)",
            "Southern bird's foot violet",
            "Southern coast violet",
            "Southern magnolia",
            "Southport",
            "Southwold",
            "Souvenir Nation",
            "Sowing",
            "Sōtatsu-Kōrin School",
            "Space Exploration & the Universe",
            "Spanish American War",
            "Spanish Gypsy",
            "Spanish Peaks",
            "Spanish bayonet",
            "Spanish colonialism",
            "Spanish colonies",
            "Spanish dress",
            "Spanish moss",
            "Spanish-American War (1898)",
            "Sparganium",
            "Sparrow",
            "Sparrows",
            "Spathyema foetida",
            "Spats",
            "Speaker of the House",
            "Speaker of the house",
            "Speaking Trumpets",
            "Spear",
            "Spear point",
            "Spears",
            "Special educator",
            "Species",
            "Species, Origin of",
            "Specifications",
            "Specimens",
            "Spectators",
            "Spectrum analysis",
            "Speech",
            "Speed",
            "Speke",
            "Speke Hall",
            "Sperm whale",
            "Spermatogenesis in animals",
            "Sphaeralcea davidsonii",
            "Sphaeralcea grossulariaefolia",
            "Sphaeriidae",
            "Sphaerodactylus",
            "Spherical Trigonometry",
            "Spherical astronomy",
            "Spherometers",
            "Sphingidae",
            "Sphinx",
            "Sphinx vespiformis",
            "Spice plants",
            "Spicebush",
            "Spices",
            "Spider Lake",
            "Spider beetles",
            "Spiderlily",
            "Spiders",
            "Spiders, Fossil",
            "Spies",
            "Spigelia marylandica",
            "Spinal cord",
            "Spines (Zoology)",
            "Spinning wheel",
            "Spiny lobsters",
            "Spiral",
            "Spirals",
            "Spires",
            "Spirit",
            "Spirit writings",
            "Spiritualist",
            "Spirituality",
            "Spirituals (Music)",
            "Spirituals (Songs)",
            "Split-rail",
            "Spoken word (Poetry)",
            "Sponges",
            "Sponges, Fossil",
            "Spontaneous generation",
            "Spoon",
            "Spoonbill",
            "Spoonbills",
            "Spoons",
            "Sporozoa",
            "Sport",
            "Sport and play",
            "Sporting goods",
            "Sporting prints",
            "Sports",
            "Sports Equipment",
            "Sports and Recreation",
            "Sports arena",
            "Sports equipment",
            "Sports executive",
            "Sports spectator",
            "Sports uniform",
            "Spotsylvania Court House, Battle of, Va., 1864",
            "Spotted beebalm",
            "Spotted cyrtopodium",
            "Spotted pipsissewa",
            "Spotted saxifrage",
            "Spouses",
            "Spring",
            "Spring and Autumn period (770 - 476 BCE)",
            "Spring beauty",
            "Springfield, MO",
            "Springs (Mechanism)",
            "Springtails",
            "Sprinklers",
            "Spruce trees",
            "Spurs",
            "Spy",
            "Spyglass",
            "Squaliformes",
            "Square",
            "Square Hills",
            "Squids",
            "Squillidae",
            "Squirrel",
            "Squirrelcorn",
            "Squirrels",
            "St. Agnes",
            "St. Andrew",
            "St. Anne",
            "St. Anthony",
            "St. Augustine",
            "St. Barbara",
            "St. Benedict",
            "St. Bernard",
            "St. Brighid",
            "St. Catherine",
            "St. Cecilia",
            "St. Christopher",
            "St. Elizabeth",
            "St. Ephesius",
            "St. Francesca",
            "St. Francis",
            "St. Francis Church",
            "St. Gabriel",
            "St. Genevieve",
            "St. George",
            "St. Germain des Pres",
            "St. Gregory",
            "St. Isidor",
            "St. Ives",
            "St. Jacques Cathedral",
            "St. James",
            "St. Jerome",
            "St. Joan of Arc",
            "St. John",
            "St. John the Baptist",
            "St. Joseph",
            "St. Laurent",
            "St. Legier",
            "St. Louis",
            "St. Louis Exposition",
            "St. Luke",
            "St. Mark",
            "St. Mark's Abbey",
            "St. Mark's Cathedral",
            "St. Mark's Plaza",
            "St. Martha",
            "St. Martin's Church",
            "St. Mary Magdalen",
            "St. Matthew",
            "St. Maur",
            "St. Michael",
            "St. Ouen",
            "St. Paul",
            "St. Paul's Cathedral",
            "St. Peter",
            "St. Peter's Church",
            "St. Petersburg",
            "St. Raphael",
            "St. Raymond",
            "St. Rita",
            "St. Roch",
            "St. Sepulchre",
            "St. Severin",
            "St. Stephen's Church",
            "St. Teresa",
            "St. Thechla",
            "St. Thomas",
            "St. Tropez",
            "St. Ursula",
            "St. Valery",
            "St. Xavier Church",
            "Stable",
            "Stachys palustria",
            "Staff",
            "Staffs (Sticks)",
            "Staffs (Sticks, canes, etc.)",
            "Staffs (Sticks, canes, etc.).)",
            "Stag",
            "Stag beetles",
            "Stage",
            "Stage set",
            "Stage-setting and scenery",
            "Stagecoach",
            "Stagger-bush",
            "Stained glass",
            "Staircase",
            "Staircases",
            "Stairs",
            "Stamp collectors",
            "Standards",
            "Standards of fineness",
            "Staphylinidae",
            "Star",
            "Star of David",
            "Star solomonplume",
            "Starch",
            "Starfishes",
            "Starling",
            "Stars",
            "Stars of Stage & Screen",
            "State",
            "State Attorney General",
            "State Government",
            "State Representative",
            "State Supreme Court Justice",
            "State of being",
            "State, The",
            "Statehood (American politics)",
            "Staten Island",
            "States",
            "Statesman",
            "Statesmen",
            "Stationery trade",
            "Stations",
            "Statistician",
            "Statistics",
            "Statue of Liberty",
            "Statue of Liberty (New York, N.Y.)",
            "Statues",
            "Statuette",
            "Status",
            "Stauromedusae",
            "Staurozoa",
            "Steam",
            "Steam Engines",
            "Steam drop hammer",
            "Steam engines",
            "Steam-engines",
            "Steam-navigation",
            "Steamboat captain",
            "Steamer",
            "Steamship",
            "Steamship RMS Titanic, April 14-15, 1912",
            "Steamship designer",
            "Steel",
            "Steel castings",
            "Steel castings industry",
            "Steel engraving",
            "Steel industry and trade",
            "Steel, Cast",
            "Steelwork",
            "Steeple",
            "Steeples",
            "Stegocephali",
            "Stegosaurus",
            "Stelleria leata",
            "Stelleroidea",
            "Stenanthium occidentale",
            "Stencil work",
            "Stenographers",
            "Stenolaemata",
            "Step",
            "Steppes",
            "Stereograph",
            "Stereoscope",
            "Stereotypes",
            "Sterne",
            "Steuben Monument (Potsdam, Germany)",
            "Steuben Monument (Washington, D.C.)",
            "Stevenson",
            "Stevensons Island",
            "Stewartia malachodendron",
            "Stickpin",
            "Still life artist",
            "Stinkbugs",
            "Stirrenberg Castle",
            "Stock",
            "Stock Markets",
            "Stock broker",
            "Stockbroker",
            "Stocking",
            "Stole",
            "Stomach",
            "Stomatopoda",
            "Stone",
            "Stone Cottage",
            "Stone lanterns",
            "Stone pine tree",
            "Stoneflies",
            "Stoneman Douglas High School Shooting",
            "Stoneware",
            "Stony Brook Bridge",
            "Stony Point",
            "Stool",
            "Storage",
            "Storage tank",
            "Store",
            "Store fixtures",
            "Stories",
            "Stork",
            "Storks",
            "Storm King",
            "Storms",
            "Story teller",
            "Story telling",
            "Storytelling",
            "Stour River",
            "Stourbridge Lion (Steam locomotive)",
            "Stove",
            "Strait of Messina",
            "Straits of Gibraltar",
            "Straits of Mackinac",
            "Strasbourg",
            "Stratigraphic",
            "Stratigraphic correlation",
            "Straw",
            "Straw hat",
            "Strawberry",
            "Strawberry bush",
            "Strawberry-Blite",
            "Stream",
            "Street musicians",
            "Street railroads",
            "Street sweeper",
            "Street-railroads",
            "Streetcar",
            "Streetlight",
            "Streets",
            "Strepsiptera",
            "Streptaxidae",
            "Streptopus amplexifolius",
            "Streptopus curvipes",
            "Stripes",
            "Strolling",
            "Stromatoporoidea",
            "Strombidae",
            "Stromboli",
            "Strongylidae",
            "Strophomenata",
            "Structural engineer",
            "Stuart, Gilbert",
            "Stucco",
            "Study and teaching",
            "Study and teaching (Higher)",
            "Study and teaching (Secondary)",
            "Stunt performers",
            "Stupa",
            "Sturgeon",
            "Sturgeons",
            "Stylasteridae",
            "Stylomecon heterophylla",
            "Stylommatophora",
            "Subject Specific",
            "Submarines (Ships)",
            "Suburban homes",
            "Subway",
            "Subways",
            "Success",
            "Succulent plants",
            "Suctoria",
            "Sudbury",
            "Suffrage",
            "Suffragist",
            "Sugar",
            "Sugar beet",
            "Sugar beet cyst nematode",
            "Sugar maple",
            "Sugarcane",
            "Sugarloaf Mountain",
            "Sui dynasty (581 - 618)",
            "Sui-ten",
            "Suicide",
            "Suitcase",
            "Sulfuric acid",
            "Sullivan's Island",
            "Sully, Thomas",
            "Sulphur Mountain",
            "Sultan",
            "Sultan Orkan",
            "Sumac",
            "Summer",
            "Summer Street",
            "Sun River",
            "Sun dial lupine",
            "Sunbirds",
            "Sunburst",
            "Sunday schools",
            "Sundials",
            "Sunetta Link",
            "Sunflower",
            "Sunglasses",
            "Sunrise",
            "Sunrises & sunsets",
            "Sunset",
            "Sunset Hill",
            "Superintendent",
            "Supernatural beings",
            "Superstition Mountain",
            "Supper at Emmaus",
            "Supreme Court justice",
            "Surfboard",
            "Surfer",
            "Surgeon General",
            "Surgery",
            "Surgical instruments and apparatus",
            "Surprise",
            "Surreal",
            "Surrender at Appomattox",
            "Surrender at Saratoga",
            "Surrender at Yorktown",
            "Surrender by General Lee",
            "Survey Prints",
            "Surveying",
            "Surveyors",
            "Surveys",
            "Survival",
            "Surya",
            "Susanna",
            "Suspenders",
            "Susquehanna River",
            "Sussex",
            "Sutra",
            "Sutton Place",
            "Swallow",
            "Swallows",
            "Swamp aster",
            "Swamp azalea",
            "Swamp magnolia",
            "Swan",
            "Swastika",
            "Swastikas",
            "Sweatshops",
            "Swedish gymnastics",
            "Sweet Azalea",
            "Sweet androsace",
            "Sweet pitcherplant",
            "Sweet potato",
            "Sweet trillium",
            "Sweetbay",
            "Sweetvetch",
            "Swimmer",
            "Swimming",
            "Swimming crabs",
            "Swine",
            "Swinging",
            "Switchboards",
            "Swordfish",
            "Swords",
            "Swords, Japanese",
            "Swordsmiths",
            "Swordsmiths' marks",
            "Sylviidae",
            "Symbiosis",
            "Symbolic Figure",
            "Symbolism",
            "Symbolism of numbers",
            "Symbolisme dans l'art",
            "Symbols",
            "Symbols & Motifs",
            "Symphoricarpos albus",
            "Syndesmon thalictroides",
            "Synthesis",
            "Syra",
            "Syrian dress",
            "Syrinx",
            "Syrphidae",
            "Ta Wa Que Nah",
            "Tabacco-pipes",
            "Tabernacle",
            "Table Rock",
            "Table tennis",
            "Tables",
            "Tablet",
            "Tableware",
            "Tabulata",
            "Tachinidae",
            "Tagus River",
            "Taijitu",
            "Tail",
            "Tailoring",
            "Tailors",
            "Taily Po",
            "Taishaku-ten",
            "Tajo River",
            "Takydromus",
            "Tale of Shuten Doji",
            "Talisman",
            "Talitridae",
            "Tall fleabane",
            "Tall larkspur",
            "Tambourine",
            "Taming of the Shrew",
            "Tampa epidendrum",
            "Tanager",
            "Tang dynasty (618 - 907)",
            "Tangier",
            "Tangos",
            "Tanks",
            "Tanks (Military science)",
            "Tanner",
            "Tanning",
            "Tannins",
            "Tantra",
            "Tao te ching",
            "Taoism art",
            "Taoist mythology",
            "Taormina",
            "Taotie",
            "Tap dancing",
            "Tapage",
            "Tapestries",
            "Tapestry, Gothic",
            "Tapestry, Medieval",
            "Tapeworms",
            "Tapis Vert",
            "Tappan",
            "Taraxacium officinale",
            "Tardigrada",
            "Tarflower",
            "Tariff",
            "Tarsiers",
            "Tarsius",
            "Tassel cottongrass",
            "Tasso, Torquato",
            "Tatting",
            "Tattoo",
            "Taunton Lakes",
            "Taurus",
            "Tavern",
            "Taverns (Inns)",
            "Taxation",
            "Taxidermist",
            "Taxidermists",
            "Taxidermy",
            "Tchung Kee",
            "Tea",
            "Tea Drinking",
            "Tea containers",
            "Tea masters",
            "Tea service",
            "Teaching",
            "Teacup",
            "Team manager",
            "Teapot",
            "Teapots",
            "Tebaldini",
            "Technical education",
            "Technical institute",
            "Technical manuals",
            "Technical study",
            "Technique",
            "Technological innovations",
            "Technology",
            "Technology & Inventions",
            "Tectibranchiata",
            "Teelt",
            "Teepee",
            "Teeth",
            "Teeth, Fossil",
            "Telegraph",
            "Telegraph Keys",
            "Telegraph Registers",
            "Telegraph Relays & Repeaters",
            "Telegraph Sounders",
            "Telegraph cables",
            "Telegraph lines",
            "Telegraph poles",
            "Telegraph stamps",
            "Telephone",
            "Telescopes",
            "Television",
            "Television industry leader",
            "Television personality",
            "Tellina",
            "Tellinidae",
            "Temeraire",
            "Temnopleuroida",
            "Temperance",
            "Temperance Movement",
            "Temperature measurements",
            "Tempest",
            "Temple",
            "Temple of Azani",
            "Temple of Jupiter",
            "Temple of Mercury",
            "Temple of Neptune",
            "Temple of Peace",
            "Temple of the Sibyl",
            "Temptation",
            "Ten Commandments",
            "Tendrils",
            "Tenebrionidae",
            "Tennis",
            "Tennis ball",
            "Tennis court",
            "Tennis racket",
            "Tennyson",
            "Tentaculata",
            "Tentaculitida",
            "Tents",
            "Tepanecas",
            "Tepee",
            "Teratology",
            "Tergomya",
            "Terminology",
            "Terns",
            "Ternstroemiaceae",
            "Terra-cotta",
            "Terrapin Tower",
            "Terrariums",
            "Terrier",
            "Territorial Governor",
            "Test tube",
            "Testacida",
            "Testis",
            "Testudinidae",
            "Teton River",
            "Tetraodontiformes",
            "Tetraonidea",
            "Tetrigidae",
            "Tettigoniidae",
            "Texas Ranger",
            "Texas statehood",
            "Textbook",
            "Textbooks",
            "Textile",
            "Textile Working",
            "Textile factories",
            "Textile fibers",
            "Textile machinery",
            "Textile printing",
            "Textile research",
            "Textile worker",
            "Textiles",
            "Texts",
            "Thalesia uniflora",
            "Thaliacea",
            "Thames River",
            "Thames, Battle of the (Ontario : 1813)",
            "Thangka",
            "Thanksgiving",
            "The Antibody Initiative",
            "The Cricket on the Hearth",
            "The Environment",
            "The Gilded Age (1877-1920)",
            "The Old Curiosity Shop",
            "The Roaring Twenties (1920-1929)",
            "The Tale of Genji",
            "The World's Work Magazine",
            "Theater",
            "Theater critic",
            "Theater in art",
            "Theater manager",
            "Theatre",
            "Theatre companies",
            "Theatrical",
            "Theatrical agent",
            "Theban Mountains",
            "Thebes",
            "Thecamoebina",
            "Thecofilosea",
            "Thecosomata",
            "Themes, motifs",
            "Themes, motives",
            "Theologian",
            "Theology",
            "Theorem",
            "Therapeutics",
            "Therapsida",
            "Thermodynamics",
            "Thermometers",
            "Thermometers and Hygrometers",
            "Thermopsis rhombifolia",
            "Theseus",
            "Thesium",
            "Thetis",
            "Thiaridae",
            "Thicket hawthorn",
            "Thief",
            "Thieves",
            "Think Tank",
            "Think tank administrator",
            "ThinkFinity",
            "Third Intermediate Period (ca. 1075 - 656 BCE)",
            "Thistle",
            "Thomas W. Lawson",
            "Thomson",
            "Thorn tree",
            "Thread leaf sundew",
            "Three Brothers",
            "Three Mile Harbor",
            "Thrips",
            "Thrips, Fossil",
            "Throne",
            "Thrush",
            "Thrushes",
            "Thuja plicata",
            "Thyme",
            "Thyroid gland",
            "Thysanura",
            "Tiara",
            "Tiber River",
            "Tiberias",
            "Ticks",
            "Ticonderoga",
            "Tides",
            "Tie pin",
            "Tiger",
            "Tiger beetles",
            "Tiles",
            "Tillandsia fasciculata",
            "Timber",
            "Timbres fiscaux",
            "Timbres-poste",
            "Time",
            "Time and Navigation",
            "Time management",
            "Timekeeping",
            "Timurid period (1378 - 1506)",
            "Tin mines and mining",
            "Tineidae",
            "Tineina",
            "Tinplate",
            "Tipularia uniflora",
            "Titanic",
            "Titian",
            "Titian Ramsey Peale Collection",
            "Titica",
            "Tivoli",
            "Toad trillium",
            "Toads",
            "Toast",
            "Tobacco",
            "Tobacco Use",
            "Tobacco industry",
            "Tobias",
            "Tofieldia intermedia",
            "Toga",
            "Toilet preparations industry",
            "Toilets",
            "Tokyo",
            "Tokyo Harbor",
            "Toledo",
            "Tomahawk",
            "Tomahawk pipe",
            "Tomb",
            "Tomopteridae",
            "Tompkins Square Park",
            "Tongs",
            "Tongue River",
            "Tonnage",
            "Tontine Building",
            "Tools",
            "Tools, Prehistoric",
            "Tooth",
            "Tooth powder",
            "Toothed whales, Fossil",
            "Top hat",
            "Top hats",
            "Topiary work",
            "Topical songs",
            "Topographer",
            "Topographical surveying",
            "Toquerville",
            "Torch",
            "Torches",
            "Torii gate",
            "Tornado, June 19, 1835",
            "Tornadoes",
            "Tornidae",
            "Torpedoes",
            "Torre di Schiavi",
            "Torres Strait Islanders",
            "Torso",
            "Tortoise",
            "Tortoise beetles",
            "Tortricidae",
            "Torture",
            "Totem",
            "Totem pole",
            "Totonicapan",
            "Totty",
            "Toucans",
            "Touch",
            "Tour Eiffel (Paris, France)",
            "Tour de Solidor",
            "Tourism",
            "Tourists",
            "Tours",
            "Towanda",
            "Tower",
            "Tower Bridge",
            "Tower Creek",
            "Tower Falls",
            "Tower clocks",
            "Tower of Hypacus",
            "Towers",
            "Town hall",
            "Towoccono",
            "Toxicologist",
            "Toxicology",
            "Toy and movable books",
            "Toys",
            "Track & Field",
            "Track & field",
            "Track and field",
            "Tractors, Metallic",
            "Trade",
            "Trademarks",
            "Trader",
            "Tradescantia virginiana",
            "Trafalgar Square",
            "Tragedy (Theatre)",
            "Tragopogon porrifolius",
            "Trailing arbutus",
            "Trailing houstonia",
            "Train launching",
            "Train station",
            "Training",
            "Training of",
            "Trainrobber",
            "Trains",
            "Traitor",
            "Trajan's Column (Rome, Italy)",
            "Tranquility Farms",
            "Trans Atlantic slave trade",
            "Transatlantic Cable",
            "Transcendentalism (New England)",
            "Transcendentalist",
            "Transcontinental Railroad",
            "Transformations (Mathematics)",
            "Transit",
            "Transits",
            "Translations from foreign literature",
            "Translator",
            "Transportation",
            "Trapeze artist",
            "Trapper",
            "Travel photography",
            "Travel, Ancient",
            "Traveler",
            "Trawls and trawling",
            "Treasurer",
            "Treasury Section of Painting and Sculpture",
            "Treaties",
            "Treaty",
            "Treaty of Ghent",
            "Trechtlingshausen",
            "Tree planting",
            "Tree stump",
            "Trees",
            "Trees, Fossil",
            "Trellis",
            "Trellises",
            "Trematoda",
            "Tremella",
            "Tremellomycetes",
            "Tremont House",
            "Tremont Temple",
            "Trench warfare",
            "Trent",
            "Trenton",
            "Trepostomata",
            "Trial of Red Jacket",
            "Trials",
            "Triangles (polygons)",
            "Triangulation",
            "Triangulum",
            "Triatoma",
            "Tribal government",
            "Tribesman",
            "Tricladida",
            "Tricorne",
            "Tricycles",
            "Tridacna",
            "Trident",
            "Trieste",
            "Trigoniidae, Fossil",
            "Trigonioida, Fossil",
            "Trigonometry",
            "Trillium album",
            "Trillium chloropetalum",
            "Trillium discolor",
            "Trillium erectum",
            "Trillium grandiflorum",
            "Trillium h.",
            "Trillium hugeri",
            "Trillium sessile",
            "Trillium simile",
            "Trillium underwoodii",
            "Trillium undulatum",
            "Trillium vasyi",
            "Trilobita",
            "Trilobites",
            "Trinket",
            "Triopsidae",
            "Tripod",
            "Tripterocalyx pedunculatus",
            "Triptych",
            "Trishula",
            "Triton",
            "Triumph",
            "Triumphal Arch, Court of Honor",
            "Triumphal arch",
            "Trogons",
            "Trogositidae",
            "Trolley",
            "Trollius albiflorus",
            "Trombidiidae",
            "Trombone",
            "Trompe l'oeil",
            "Tropea",
            "Trophies",
            "Tropic",
            "Tropic-birds",
            "Tropical medicine",
            "Tropical plants",
            "Tropics",
            "Trout",
            "Trout fishing",
            "Troy",
            "Truant",
            "Truck",
            "Truck farming",
            "Trumpet vine",
            "Trumpetcreeper",
            "Trumpetleaf",
            "Trumpets",
            "Truncatellidae",
            "Trunks (Luggage)",
            "Trustee",
            "Truth",
            "Try square",
            "Tryon",
            "Trypanosoma",
            "Tsar",
            "Tsetse-flies",
            "Tsongkhapa",
            "Tsuga heterophylla",
            "Tsuga mertensiana",
            "Tuatara",
            "Tubothalamea",
            "Tucson",
            "Tufted saxifrage",
            "Tugboat",
            "Tulip",
            "Tuliptree",
            "Tulsa Race Massacre",
            "Tumion californicum",
            "Tunicata",
            "Tuniciers",
            "Tunnel",
            "Tunnels",
            "Turban",
            "Turbellaria",
            "Turbinellidae",
            "Turbinidae",
            "Turbinolidae",
            "Turkeyhead cactus",
            "Turkeys",
            "Turkish dress",
            "Turpentine industry and trade",
            "Turpentine industry workers",
            "Turquoise",
            "Turridae",
            "Turridae, Fossil",
            "Turtlehead",
            "Turtles",
            "Tuscany",
            "Tusculum",
            "Tuskegee Airmen",
            "Tussie-mussies",
            "Tutor",
            "Tutoring",
            "Twentieth century",
            "Twilight",
            "Twill",
            "Twine industry",
            "Twinleaf",
            "Tybee",
            "Type and type-founding",
            "Type designer",
            "Type specimens",
            "Type specimens (Natural history)",
            "Typesetting machines",
            "Typewriter",
            "Typewriters",
            "Typhlobagrus",
            "Typographer",
            "Typography",
            "Tyre",
            "Tyrolean Alps",
            "Tyrrhenian Sea",
            "Tzu pu",
            "U. S. Capitol",
            "U. S. Legation",
            "U.S. 485",
            "U.S. Capitol Building",
            "U.S. Classics",
            "U.S. History, 1783-1815",
            "U.S. History, 1815-1861",
            "U.S. History, 1865-1921",
            "U.S. History, 1919-1933",
            "U.S. History, 1933-1945",
            "U.S. History, 1945-1953",
            "U.S. History, 1953-1961",
            "U.S. History, 1961-1969",
            "U.S. History, 1969-2001",
            "U.S. History, 2001-",
            "U.S. History, Civil War, 1861-1865",
            "U.S. History, Colonial period, 1600-1775",
            "U.S. History, Revolution, 1775-1783",
            "U.S. National Government, executive branch",
            "U.S. National Government, judiciary",
            "U.S. National Government, legislative branch",
            "U.S. Related Areas",
            "U.S. Stamps",
            "U.S. states",
            "U.S.S.R.",
            "US",
            "US Attorney",
            "US Attorney General",
            "US Capitol",
            "US Consul",
            "US Marshal",
            "US Minister",
            "US Postmaster General",
            "US Supreme Court Justice",
            "Uchee",
            "Uki-e",
            "Ukiyo-e",
            "Ukiyoe",
            "Ukrainian blind mole rats",
            "Ulothricaceae",
            "Ulvophyceae",
            "Uma",
            "Umbrella tree",
            "Umbrellas",
            "Uncle Sam (Symbolic character)",
            "Underdrawing",
            "Underground Railroad",
            "Undine",
            "Unfinished",
            "Unglazed",
            "Ungulata",
            "Ungulates",
            "Ungulates, Fossil",
            "Unicorn",
            "Uniforms",
            "Uniforms, Military",
            "Uniforms, fraternal",
            "Unio",
            "Union",
            "Union Square",
            "Unionidae",
            "Unitarian Church",
            "United Farm Workers",
            "United Kingdom",
            "United Nations",
            "United States Botanic Garden",
            "United States Colored Troops",
            "United States Constitution, Fifteenth Amendment",
            "United States History",
            "United States. Constitution",
            "Unity",
            "Universalism",
            "Universities",
            "University administrator",
            "University president",
            "University trustee",
            "Upholstery",
            "Upland game birds",
            "Upper Falls",
            "Upper class",
            "Uraniidae",
            "Urban life",
            "Urban planning",
            "Urban transportation",
            "Urea",
            "Urinary organs",
            "Urine",
            "Urn",
            "Urna",
            "Urns",
            "Urocoptidae",
            "Urodela",
            "Uropeltidae",
            "Urus",
            "Ushnisha",
            "Utah Lake",
            "Utah Territory",
            "Utai",
            "Utensils",
            "Utica, NY",
            "Utilities",
            "Utopias",
            "Utrecht",
            "Uvalaria perfoliata",
            "VIDA SOCIAL Y COSTUMBRES",
            "Vaccinium caespitosum",
            "Vaccinium corymbosum",
            "Vaccinium membranaceum",
            "Vaccinium scoparium",
            "Vaccinium tenellum",
            "Vaccinium vitisdaea minus",
            "Vaea",
            "Vagina",
            "Vagnera stellata",
            "Vagus nerve",
            "Vairocana Buddha",
            "Vaisravana",
            "Vajra",
            "Vajrapani",
            "Vajravarahi",
            "Vajrayana Buddhism",
            "Val d'Ema",
            "Valdivia Expedition",
            "Valentine's Day",
            "Valeriana sitchensis",
            "Valkyrie",
            "Valley Forge",
            "Valley Stream",
            "Valley of the Lledr",
            "Valley of the Llugwy",
            "Valleys",
            "Valparaiso",
            "Valparaiso Harbor",
            "Valuation",
            "Valvata",
            "Vampires",
            "Vanity",
            "Var (Dept.)",
            "Varada mudra",
            "Varens",
            "Variation (Biology)",
            "Varieties",
            "Varnish and varnishing",
            "Vase",
            "Vase of nectar",
            "Vases",
            "Vases, Roman",
            "Vasudhara",
            "Vaud",
            "Vaudeville",
            "Vector analysis",
            "Vegetable",
            "Vegetable gardening",
            "Vegetable seller",
            "Vegetables",
            "Vehicles",
            "Veil",
            "Velvet",
            "Vendor",
            "Veneroida",
            "Venetian",
            "Venezuelan",
            "Venom",
            "Ventimiglia",
            "Ventriloquist",
            "Venus",
            "Venus flytrap",
            "Venus' vliegenval",
            "Venus's flytrap",
            "Veracruz",
            "Veratrum viride",
            "Verbena wrightii",
            "Verde River",
            "Vergennes, VT",
            "Vermeer, Johannes",
            "Vernal Falls",
            "Vernal iris",
            "Verona",
            "Veronica serpyllifolia",
            "Veronica wormskjoldii",
            "Versailles",
            "Versailles Gardens",
            "Versailles Palace",
            "Versailles, Treaty of",
            "Verse satire, Latin",
            "Vertebrae",
            "Vertebrates",
            "Vertebrates, Fossil",
            "Vertrouwt",
            "Vervain",
            "Verzamelen",
            "Vespertilionidae",
            "Vest",
            "Vestryman",
            "Veteran",
            "Veterinary medicine",
            "Veterinary parasitology",
            "Vevey",
            "Via Appia",
            "Via Tuscolana",
            "Viability",
            "Vibo Valentia",
            "Viburnum americanum",
            "Viburnum pauciflorum",
            "Vicar",
            "Vicar of Wakefield",
            "Vice Admiral",
            "Vice president",
            "Vice-Presidential Candidate",
            "Vice-Presidents",
            "Vicenza",
            "Vicia americana",
            "Vicki",
            "Vicksburg",
            "Vicovaro",
            "Victorian Era",
            "Victorian dress",
            "Victorian style",
            "Victoriana",
            "Vienna",
            "Vietnam War, 1961-1975",
            "Views",
            "Vigo Bridge",
            "Viking",
            "Villa Falconieri",
            "Villa Malta",
            "Villa Mecenas",
            "Village communities",
            "Villages",
            "Villajoyosa",
            "Villeneuve",
            "Vimalakirti",
            "Vina",
            "Vine",
            "Viola",
            "Viola adunca",
            "Viola canadensis",
            "Viola digitata",
            "Viola eriocarpa",
            "Viola orbiculata",
            "Viola palustris",
            "Viola papilionacea",
            "Viola pedata",
            "Viola primulifolia",
            "Viola rafinesquii",
            "Viola septemloba",
            "Viola striata",
            "Violaceae",
            "Violence",
            "Violet",
            "Violets",
            "Violincello",
            "Violinist",
            "Violins",
            "Viperidae",
            "Virgil",
            "Virgin",
            "Virgin Mary",
            "Virgin River",
            "Virginia bluebells",
            "Virginia spiderwort",
            "Virginia springbeauty",
            "Virginia stewartia",
            "Virgo",
            "Virudhaka",
            "Viscount",
            "Viscountess",
            "Vishnu",
            "Vishvamitra",
            "Vision",
            "Visionary architecture",
            "Visor",
            "Visual arts administrator",
            "Vitarka mudra",
            "Vitrinella",
            "Vivariums",
            "Viviparidae",
            "Vivisection",
            "Vocal duets with orchestra",
            "Vocal duets with piano",
            "Vocal scores with piano",
            "Vocal scores without accompaniment",
            "Voice",
            "Volcan Agua",
            "Volcan Apea",
            "Volcan Fuego",
            "Volcan Zunil",
            "Volcanic eruption",
            "Volcanic eruptions",
            "Volcano",
            "Volcanoes",
            "Volendam",
            "Volta effect",
            "Volterra",
            "Volunteer",
            "Volutidae",
            "Voting",
            "Voting and Property Rights",
            "Voyages",
            "Voyages and travels",
            "Voyages around the world",
            "Voyages autour du monde",
            "Voyages to the Pacific coast",
            "Voyages, Imaginary",
            "Vulcanization",
            "Vulture",
            "Vultures",
            "WW I",
            "WW II",
            "Wacker Drive",
            "Wagner",
            "Wagon",
            "Wagons",
            "Waist",
            "Waiting",
            "Waitresses",
            "Wake-robin",
            "Wales",
            "Walking",
            "Walking stick",
            "Walkingstick cholla",
            "Walkway",
            "Wall",
            "Wall Street",
            "Wall hanging",
            "Wall hangings",
            "Wallflower",
            "Wallpaper",
            "Walls",
            "Walpi",
            "Walrus",
            "Walt Whitman Birthplace",
            "Waltzes",
            "Waltzes (Piano)",
            "Wampum belts",
            "Wang Wei",
            "Wangchuan Villa",
            "Wanli reign (1573 - 1620)",
            "War",
            "War Council",
            "War bonnets",
            "War damage",
            "War of 1812",
            "War of 1812, 1812-1815",
            "War photographer",
            "War work",
            "Warbler",
            "Wardian cases",
            "Warehouse",
            "Warfare",
            "Warring States period (475 - 221 BCE)",
            "Warrior",
            "Wars",
            "Warship",
            "Warships",
            "Warwick",
            "Wasatch Mountains",
            "Washing",
            "Washing machine",
            "Washing machines",
            "Washington Arch",
            "Washington Crossing",
            "Washington D.C.",
            "Washington Monument",
            "Washington lily",
            "Washington, Booker T., 1856-1915",
            "Washington, DC",
            "Washington, George",
            "Wasps",
            "Wassen",
            "Watch",
            "Watchcases",
            "Watchmaker",
            "Watchman",
            "Water",
            "Water Currents",
            "Water beetles",
            "Water birds",
            "Water buffalo",
            "Water carrier",
            "Water crowfoot",
            "Water features",
            "Water lily",
            "Water mites",
            "Water pump",
            "Water-supply",
            "Water-wheels",
            "Watercolorist",
            "Waterfalls",
            "Waterfowl",
            "Waterfowl shooting",
            "Waterloo",
            "Waterloo, Battle of, Waterloo, Belgium, 1815",
            "Watermarks",
            "Watermelon",
            "Waterscapes",
            "Watertown",
            "Waterwork",
            "Watkins Glen",
            "Watteau, Jean-Antoine",
            "Wave",
            "Waves in art",
            "Wax modeler",
            "Wax trillium",
            "Waxenstein Mountains",
            "Wea",
            "Wealth",
            "Wealthy",
            "Weapons",
            "Weariness",
            "Weasel",
            "Weather",
            "Weathervane",
            "Weaverbirds",
            "Weaving",
            "Web site",
            "Webb",
            "Webb Farm",
            "Weber River",
            "Weberian apparatus",
            "Webspinners",
            "Wedding",
            "Wedding Band",
            "Wedding dress",
            "Weddings",
            "Wedgwood ware",
            "Weeds",
            "Weehawken",
            "Weft patterning",
            "Weighing instruments industry",
            "Weights and measures",
            "Weimo",
            "Weir",
            "Well",
            "Wells",
            "Wells Cathedral",
            "Weltkrieg",
            "Wenshu",
            "West Palm Beach",
            "West Point",
            "Western",
            "Western Han dynasty (206 BCE - 9 CE)",
            "Western Wei dynasty (535 - 556)",
            "Western Zhou dynasty (ca. 1050 - 771 BCE)",
            "Western azalea",
            "Western blue flag",
            "Western bluebells",
            "Western capercaillie",
            "Western cranesbill",
            "Western films",
            "Western green alder",
            "Western hemlock",
            "Western larch",
            "Western menziesia",
            "Western monkshood",
            "Western mountain ash",
            "Western pipsissewa",
            "Western rattlesnake plantain",
            "Western states",
            "Western yarrow",
            "Westminster Bridge",
            "Westport",
            "Westward expansion",
            "Wethersfield Ferry",
            "Whalers",
            "Whalers (Persons)",
            "Whales",
            "Whales, Fossil",
            "Whaling",
            "Wharf",
            "Wheat",
            "Wheat broker",
            "Wheat straw",
            "Wheat strawworm",
            "Wheel",
            "Wheelbarrow",
            "Wheelchair",
            "Wheeling",
            "Wheels",
            "Whip",
            "Whip scorpions",
            "Whippoorwill",
            "Whirlwinds",
            "Whiskey",
            "Whist",
            "White Indian paintbrush",
            "White Mountains",
            "White Pine Canyon",
            "White Supremacist",
            "White dawnrose",
            "White dryad",
            "White epidendrum",
            "White fairy lantern",
            "White flowering raspberry",
            "White globeflower",
            "White heather",
            "White pea",
            "White supremacy movements",
            "White thistle",
            "White troutlily",
            "White whale",
            "Whitebark pine",
            "Whiteface Mountain",
            "Wholesade trade",
            "Wichita Mountains",
            "Wicker",
            "Widow",
            "Widower",
            "Wife",
            "Wig",
            "Wild Animals",
            "Wild animal collecting",
            "Wild calla",
            "Wild flax",
            "Wild flowers",
            "Wild hazelnut",
            "Wild hyacinth",
            "Wild oat",
            "Wild pea",
            "Wild pineapple",
            "Wild plants",
            "Wild rice",
            "Wild rose",
            "Wild sweet crab",
            "Wildcat",
            "Wilderness, Battle of the, Va., 1864",
            "Willamette River",
            "William Corbett's School",
            "Williams College",
            "Williamsburg",
            "Williamstown",
            "Willow",
            "Willow tree",
            "Willows",
            "Wilton Castle",
            "Winchester",
            "Winchester Cathedral",
            "Wind",
            "Wind Bloweth",
            "Wind River Mountains",
            "Wind energy",
            "Wind gods",
            "Wind instruments",
            "Wind poppy",
            "Windmill",
            "Windmills",
            "Window gardening",
            "Windows",
            "Windows in interior decoration",
            "Winds",
            "Windsor",
            "Windsor Castle",
            "Windsor Park",
            "Wine",
            "Wine and wine making",
            "Wine bottle",
            "Wine cup",
            "Wine merchant",
            "Winged being",
            "Wings",
            "Wings (Anatomy)",
            "Winter",
            "Winter's Tale",
            "Winterberry",
            "Wire",
            "Wirework",
            "Wisconsin River",
            "Wissahickon Creek",
            "Wisteria",
            "Wit and humor",
            "Witch",
            "Witch of Endor",
            "Witch-hazel",
            "Witchcraft",
            "Witches Rock",
            "Withlacoochee River",
            "Witte Paters",
            "Wolf",
            "Wolves",
            "Woman",
            "Woman in New England",
            "Women",
            "Women Taken in Adultery",
            "Women and freemasonry",
            "Women calligraphers",
            "Women scientists",
            "Women slaves",
            "Women's Club Movement",
            "Women's Health",
            "Women's History",
            "Women's clothing",
            "Women's organizations",
            "Women's periodicals, English",
            "Women's rights advocate",
            "Women, Zulu",
            "Wood",
            "Wood lily",
            "Wood merrybells",
            "Wood skullcap",
            "Wood warblers",
            "Wood-carving",
            "Wood-gathering",
            "Wood-nymph",
            "Woodblock",
            "Woodcock",
            "Woodcock, American",
            "Woodcock, Eurasian",
            "Woodford Mambrino",
            "Woodpecker",
            "Woodpeckers",
            "Woodsprite",
            "Woodworker",
            "Woody plants",
            "Woolen and worsted manufacture",
            "Woolgrass",
            "Woolly fleabane",
            "Woolworth Building",
            "Wooly agoseris",
            "Wooly arnica",
            "Worcester porcelain",
            "Workers",
            "Working class",
            "Works Progress Administration",
            "Works Progress Administration, Federal Art Project",
            "Workshop recipes",
            "World War, 1914-1918",
            "World War, 1939-1945",
            "Worm",
            "Worms",
            "Worry",
            "Worship",
            "Worshiper",
            "Wound",
            "Wrangell",
            "Wrangler",
            "Wreath",
            "Wreaths",
            "Wren",
            "Wrestling",
            "Wrist watch",
            "Writers",
            "Writing",
            "Writing table",
            "Writing tablet",
            "Writing tool",
            "Wye River",
            "X-rays",
            "Xanthophyceae",
            "Xenarthra",
            "Xenarthra, Fossil",
            "Xenophyophora",
            "Xerophyllum tenax",
            "Xiao shou chia lei",
            "Xiphosura",
            "Yacht",
            "Yachting",
            "Yachting cap",
            "Yachts",
            "Yachtsman",
            "Yak",
            "Yaksa",
            "Yaksha",
            "Yakusha-e",
            "Yale University",
            "Yamato-e",
            "Yaupon",
            "Yellow cucumbertree",
            "Yellow dryad",
            "Yellow fever",
            "Yellow fringeorchid",
            "Yellow jessamine",
            "Yellow lady's slipper",
            "Yellow lupine",
            "Yellow penstemon",
            "Yellow stonecrop",
            "Yellow violet",
            "Yellow willow grass",
            "Yellow willow-weed",
            "Yellowstone Canyon",
            "Yellowstone Falls",
            "Yellowstone Lake",
            "Yellowstone National Park",
            "Yellowstone Range",
            "Yellowstone River",
            "Yerba mansa",
            "Yin-yang",
            "Ynsiensi",
            "Yogini",
            "York",
            "York Minister",
            "York River",
            "Yorktown",
            "Yosemite Falls",
            "Yosemite Valley",
            "Young Lords Movement",
            "Young Men's Christian associations",
            "Youth",
            "Yuan dynasty (1279 - 1368)",
            "Yucca",
            "Yucca baccata",
            "Yucca baileyi",
            "Yucca tree",
            "Yue ware",
            "Yugoslavia",
            "Zarzuelas",
            "Zauschneria carlifornica",
            "Zebra",
            "Zebras",
            "Zembra",
            "Zen Buddhism",
            "Zen priests",
            "Zenobia",
            "Zenobia cassinifolia",
            "Zeppelin LZ 3",
            "Zeppelin LZ 4",
            "Zermatt",
            "Zeus",
            "Zhejiang green-glazed ware",
            "Zhong Kui",
            "Zhou dynasty (ca. 1050 - 221 BCE)",
            "Zhuangzi",
            "Zinc sculpture, American",
            "Zingare",
            "Zinnia",
            "Zinnia grandiflora",
            "Zion National Park",
            "Zoantharia",
            "Zodiac",
            "Zongzi",
            "Zonitidae",
            "Zoo keepers",
            "Zoo visitors",
            "Zoogeography",
            "Zoological illustration",
            "Zoological models",
            "Zoologist",
            "Zoology",
            "Zoology, Economic",
            "Zoology, Medical",
            "Zooplankton",
            "Zoos",
            "Zulu War, 1879",
            "Zurich",
            "Zwijndrecht",
            "Zygadenus elegans",
            "Zygadenus venenosus",
            "Zygaenidae",
            "Zygophyllceae",
            "[NO SUBJECT]",
            "abolitionism",
            "anti-Catholicism",
            "bloomers",
            "canoeing",
            "croquet",
            "descriptive geometry",
            "dicotyledonae",
            "grave",
            "hotels",
            "kitchen",
            "metalworking",
            "not dated",
            "publishers",
            "skateboarding"
        ],
        "message": "content found"
    }
}
 

Request      

POST api/v1/smithsonian/get-search-filter-data

Body Parameters

category  required optional  

string The term category or search filter name. Only Allowed values:culture, data_source, date, object_type, online_media_type, place, topic, unit_code

starts_with  optional optional  

string Prefix filter.

All Brightcove Account List.

Get All Brightcove Account List.

Example request:
curl --request GET \
    --get "http://localhost:8000/api/v1/brightcove/suborganization/1/get-bc-account-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/brightcove/suborganization/1/get-bc-account-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'http://localhost:8000/api/v1/brightcove/suborganization/1/get-bc-account-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "errors": [
        "Brightcove account list not found."
    ]
}
 

Request      

GET api/v1/brightcove/suborganization/{suborganization}/get-bc-account-list

URL Parameters

suborganization  string  

The Id of a suborganization

Get Brightcove Videos List

Get the specified Brightcove API setting data.

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/brightcove/get-bc-videos-list" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"organization_id\": 1,
    \"query_param\": \"query=name=file&limit=0&offset=0\"
}"
const url = new URL(
    "http://localhost:8000/api/v1/brightcove/get-bc-videos-list"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": 1,
    "organization_id": 1,
    "query_param": "query=name=file&limit=0&offset=0"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/brightcove/get-bc-videos-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'id' => 1,
            'organization_id' => 1,
            'query_param' => 'query=name=file&limit=0&offset=0',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/brightcove/get-bc-videos-list

Body Parameters

id  integer  

Valid id of a brightcove api settings table

organization_id  integer  

Valid id of existing user organization

query_param  string optional  

optional Valid brightcove query param

Get vimeo,komodo direct or playable url

Example request:
curl --request POST \
    "http://localhost:8000/api/v1/video/get-direct-url" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "http://localhost:8000/api/v1/video/get-direct-url"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'http://localhost:8000/api/v1/video/get-direct-url',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/video/get-direct-url